begin process at 2012 05 27 15:26:30
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > DÉCIMAL TO HEXDECIMAL

DÉCIMAL TO HEXDECIMAL


 Information sur la source

Note :
Aucune note
Catégorie :Divers Classé sous :decimal, hexadecimal, convertir, fonction, recurante Niveau :Débutant Date de création :24/01/2012 Vu / téléchargé :1 466 / 115

Auteur : loulou27200

Ecrire un message privé
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

 Description

Voici une fonction qui permet de convertir  un nombre décimal en hexadecimal en utilisant une fonction récurante.

Bonne utilisation

si vous avez des optimisation elle sont les bienvenues!!

Source

  • Private Sub Text1_Change()
  • Label1 = DecToHexa2(Text1)
  • End Sub
  • '
  • Public Function DecToHexa2(Nb)
  • If Nb = "" Then Exit Function
  • lenombre2 = Nb
  • While Int(lenombre2 / 16) <> 0
  • Select Case Int(lenombre2 / 16)
  • Case Is < 10
  • DecToHexa2 = DecToHexa2 + CStr(Int(lenombre2 / 16))
  • Case 10
  • DecToHexa2 = DecToHexa2 + "A"
  • Case 11
  • DecToHexa2 = DecToHexa2 + "B"
  • Case 12
  • DecToHexa2 = DecToHexa2 + "C"
  • Case 13
  • DecToHexa2 = DecToHexa2 + "D"
  • Case 14
  • DecToHexa2 = DecToHexa2 + "E"
  • Case 15
  • DecToHexa2 = DecToHexa2 + "F"
  • Case Is > 15
  • DecToHexa2 = DecToHexa2 + DecToHexa2(Int(lenombre2 / 16))
  • End Select
  • lenombre2 = lenombre2 - (Int(lenombre2 / 16) * 16)
  • Wend
  • Select Case lenombre2
  • Case Is < 10
  • DecToHexa2 = DecToHexa2 + CStr(lenombre2)
  • Case 10
  • DecToHexa2 = DecToHexa2 + "A"
  • Case 11
  • DecToHexa2 = DecToHexa2 + "B"
  • Case 12
  • DecToHexa2 = DecToHexa2 + "C"
  • Case 13
  • DecToHexa2 = DecToHexa2 + "D"
  • Case 14
  • DecToHexa2 = DecToHexa2 + "E"
  • Case 15
  • DecToHexa2 = DecToHexa2 + "F"
  • End Select
  • End Function
  • Private Sub Text1_KeyPress(KeyAscii As Integer)
  • If Not ((KeyAscii >= 48 And KeyAscii <= 57) Or KeyAscii = 8 Or KeyAscii = 44 Or KeyAscii = 46) Then
  • KeyAscii = 0 'on annule la pression sur la touche
  • End If
  • End Sub
Private Sub Text1_Change()
    Label1 = DecToHexa2(Text1)
End Sub
'
Public Function DecToHexa2(Nb)
       If Nb = "" Then Exit Function
       lenombre2 = Nb
       While Int(lenombre2 / 16) <> 0
            Select Case Int(lenombre2 / 16)
                Case Is < 10
                    DecToHexa2 = DecToHexa2 + CStr(Int(lenombre2 / 16))
                Case 10
                    DecToHexa2 = DecToHexa2 + "A"
                Case 11
                    DecToHexa2 = DecToHexa2 + "B"
                Case 12
                    DecToHexa2 = DecToHexa2 + "C"
                Case 13
                    DecToHexa2 = DecToHexa2 + "D"
                Case 14
                    DecToHexa2 = DecToHexa2 + "E"
                Case 15
                    DecToHexa2 = DecToHexa2 + "F"
                Case Is > 15
                    DecToHexa2 = DecToHexa2 + DecToHexa2(Int(lenombre2 / 16))
            End Select
            lenombre2 = lenombre2 - (Int(lenombre2 / 16) * 16)
        Wend
            Select Case lenombre2
                Case Is < 10
                    DecToHexa2 = DecToHexa2 + CStr(lenombre2)
                Case 10
                    DecToHexa2 = DecToHexa2 + "A"
                Case 11
                    DecToHexa2 = DecToHexa2 + "B"
                Case 12
                    DecToHexa2 = DecToHexa2 + "C"
                Case 13
                    DecToHexa2 = DecToHexa2 + "D"
                Case 14
                    DecToHexa2 = DecToHexa2 + "E"
                Case 15
                    DecToHexa2 = DecToHexa2 + "F"
            End Select
End Function

Private Sub Text1_KeyPress(KeyAscii As Integer)
    If Not ((KeyAscii >= 48 And KeyAscii <= 57) Or KeyAscii = 8 Or KeyAscii = 44 Or KeyAscii = 46) Then
        KeyAscii = 0 'on annule la pression sur la touche
    End If
End Sub


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources de la même categorie

Source avec Zip EDITION D'ÉTIQUETTES SANS OUTIL EXTERNE par ucfoutu
Source avec Zip Source .NET (Dotnet) APPRENDRE À PRONONCER LES MOTS ANGLAIS par alpha5
Source avec Zip Source .NET (Dotnet) AFFICHAGE DE TEXTE DANS UNE PICTUREBOX par alpha5
Source avec Zip TEXTBOX EN NUMÉRIQUE par 320C
SOUS-TITRES : INCRÉMENTATION DE TOUTES LES CHAÎNES DE CARACT... par ALMIRA

 Sources en rapport avec celle ci

Source .NET (Dotnet) CONVERTIR SECONDES EN HEURES par jfcode
Source avec Zip Source avec une capture Source .NET (Dotnet) CONVERSION DE BASE2 BASE10 BASE16 par alfr3d
Source avec Zip CONVERSION EN DECIMAL, HEXADECIMAL & BINAIRE par Pyros
Source avec Zip UTILISER LA FONCTION LINE POUR EFFECTUER DES FONCTION AGORIT... par flagyg
CONVERSION DE NOMBRES EN BASE X par FlyKiller

Commentaires et avis

Commentaire de Renfield le 24/01/2012 11:18:31 administrateur CS

Es-tu faché avec la fonction Hex$ ?

Pas bon, ce genre de choses :
Private Sub Text1_KeyPress(KeyAscii As Integer)
    If Not ((KeyAscii >= 48 And KeyAscii <= 57) Or KeyAscii = 8 Or KeyAscii = 44 Or KeyAscii = 46) Then
        KeyAscii = 0 'on annule la pression sur la touche
    End If
End Sub

pas hermetique aux fautes de saisie (presse papier, etc)

Commentaire de loulou27200 le 24/01/2012 12:09:13

Pourquoi ce n'est pas bon! le control text est destiné à recevoir des chiffres et non du text, je prévois que l'utilisateur se trompe!!

Commentaire de Renfield le 24/01/2012 13:10:52 administrateur CS

oui, mais on ne controle pas la saisie a la volée, c'est souvent vecteur d'inconfort...

rien n'empeche de saisir des caractères non autorisés via le presse papier.

voir le flag ES_NUMBER :
http://www.codyx.org/snippet_textbox-numerique-seulement_53.aspx

Commentaire de Renfield le 24/01/2012 13:33:45 administrateur CS

Presse papier toujours une faille, mais code plus court :




Option Explicit

Private Const ES_NUMBER As Long = &H2000&
Private Const GWL_STYLE As Long = -16

Private Declare Function GetWindowLong Lib "user32.dll" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32.dll" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Private Sub Form_Load()
    SetWindowLong Text1.hwnd, GWL_STYLE, GetWindowLong(Text1.hwnd, GWL_STYLE) Or ES_NUMBER
End Sub

Private Sub Text1_Change()
    Label1.Caption = DecToHexa2(Text1.Text)
End Sub

Public Function DecToHexa2(ByRef StringNb As String) As String
    If Val(StringNb) Then
        DecToHexa2 = Hex$(StringNb)
    Else
        DecToHexa2 = "0"
    End If
End Function

Commentaire de loulou27200 le 24/01/2012 15:00:01

Effectivement ton code est plus court
Mais je débute dans la programmation que je connais pas toutes les fonctions, ton code bloc à 2147483648 alors que le mien semble pouvoir dépasser cette valeur.

Commentaire de NHenry le 24/01/2012 19:16:57 administrateur CS

Bonjour,

Normal que ton code arrive à plus, tu n'a pas déclaré tes variables, du coup, elles sont Variant, donc pour plus, tu passes en Double, tu perds pas mal de précision par contre.

Mets TOUJOURS Option Explicit en haut de tout tes modules de code en VB6 et VBA.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Conversion hexadecimal-decimal [ par zarf ] J'aimerais savoir si il existe une fonction inverse à la fonction Hex(). Si non, qu'elle serait la méthode. Merci. changement du symbol decimal sous windows [ par jj ] Comment peut on changer de symbol decimal sous windows, en utilisant une fonction faisant appel à une DLL ?en effet, windows propose par defaut la "," Fonction pour convertir ujn fichier "csv" en "xls" [ par LibreMax ] Salut,Quelqu'un connaiterai une fonction pour convertir un fichier ".csv" en ".xls"Merci LibreMax changer Hexadecimal en decimal [ par darwin42 ] salut, tout est dans le titre; Je voudrais savoir comment transformer un champs hexadecimal en decimal.merci d'avance... Convertir fonction VBA DMax pour VB6 [ par impact74 ] Bonjour à toutes et à tous !!!Voilà je dois développer un programme en "VB6" qui interroge un base de données Access.Dans cette interrogation je doit convertir et comparer en decimal [ par cam8 ] Bonjour j'aimearais comparer des valeurs que j'extrait d'un fichier .csv (feuille excel) à des nombres décimaux mais mes comparaison ne marche pas. L Aide SVP... conversion de decimal à binaire [ par jjs ] J'arrive pas à trouver la fonction qui me transforme des décimaux en binaires, en excel elle existe sous le nom decbin, est ce qu'il existe une foncti comment convertir des valeurs en HEXA en DECIMAL SVP ? [ par zeeti ] Comment puis-je convertir des valeurs en HEXA, en DECIMAL (BASE 16 &gt; BASE 10)Car le contraire est facile avec la fonctin Hex mais pas la réciproque convertion decimal en hexadecimal [ par taz ] je cherche le source de la conversion decimal en hexadecimal .merci d'avance Algo pour convertir un nombre DECIMAL en HEXA [ par Rurouni ] Bonjour, Je ne peux pas utiliser la fonction Hex car mon nombre est tres grand et ne tient pas dans une variable type double.Donc j aimerais avoir un


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,827 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales