[R] Traduction Héxadécimal -> Binaire

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Sparkdaemon
Niveau 3
Niveau 3
Messages : 38
Enregistré le : jeu. 04 mars 2010 19:18
Localisation : $Coord
Status : Hors ligne

[R] Traduction Héxadécimal -> Binaire

#1

Message par Sparkdaemon »

Bonjour a tous,
J'ai un petit projet actuellement, et j'ai un petit souci.
je doit traduire de l'héxadécimal vers le Binaire Pur et dur.

Voici mon code :

Code : Tout sélectionner

$string = "sparkdaemon"
$hex = StringToBinary($string)
$bin = hexatobinary($hex)
if @error then exit $bin
MsgBox(0, "", $bin&@crlf&$hex)
Func hexatobinary($data)
    local $dat = ''
    if IsBinary($data) Then
        $dat = StringReplace($data, 0, 0000)
        $dat =StringReplace($data, 1, 0001)
        $dat =StringReplace($data, 2, 0010)
        $dat =StringReplace($data, 3, 0011)
        $dat =StringReplace($data, 4, 0100)
        $dat =StringReplace($data, 5, 0101)
        $dat =StringReplace($data, 6, 0110)
        $dat =StringReplace($data, 7, 0111)
        $dat =StringReplace($data, 8, 1000)
        $dat =StringReplace($data, 9, 1001)
        $dat =StringReplace($data, "A", 1010)
        $dat =StringReplace($data, "B", 1011)
        $dat =StringReplace($data, "C", 1100)
        $dat =StringReplace($data, "D", 1101)
        $dat =StringReplace($data, "E", 1110)
        $dat =StringReplace($data, "F", 1111)
    Else
        SetError(1, 1, "$data n'est pas de l'hexadécimal !")
    EndIf
EndFunc
 
Le code me retourne 0x42611116E6A611117572
Le souci, C'est que Je ne sait pas comment formuler mon Stringreplace,
Help? ;)
Modifié en dernier par Sparkdaemon le lun. 19 avr. 2010 17:38, modifié 3 fois.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11791
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Traduction Héxadécimal -> Binaire

#2

Message par Tlem »

Cela devrait être plus simple avec ceci :
► Afficher le texte
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Sparkdaemon
Niveau 3
Niveau 3
Messages : 38
Enregistré le : jeu. 04 mars 2010 19:18
Localisation : $Coord
Status : Hors ligne

Re: [..] Traduction Héxadécimal -> Binaire

#3

Message par Sparkdaemon »

Merci de cette réponse, Mais
Cette fonction me retourne -1

Code : Tout sélectionner

$string = "Sparkdaemon"
$hex = StringToBinary($string)
$bin = _HexToBinaryString($hex)
if @error then exit @error
MsgBox(0, "", $bin)
; Hex To Binary
Func _HexToBinaryString($HexValue)
    Local $Allowed = '0123456789ABCDEF'
    Local $Test,$n
    Local $Result = ''
    if $HexValue = '' then
        SetError(-2)
        Return
    EndIf

    $HexValue = StringSplit($HexValue,'')
    for $n = 1 to $HexValue[0]
        if not StringInStr($Allowed,$HexValue[$n]) Then
            SetError(-1)
            return 0
        EndIf
    Next

    Local $bits = "0000|0001|0010|0011|0100|0101|0110|0111|1000|1001|1010|1011|1100|1101|1110|1111"
    $bits = stringsplit($bits,'|')
    for $n = 1 to $HexValue[0]
        $Result &=  $bits[Dec($HexValue[$n])+1]
    Next

    Return $Result

EndFunc
je penses que j'ai mal formulé la fonction
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11791
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Traduction Héxadécimal -> Binaire

#4

Message par Tlem »

Par ce que vous utilisez mal la fonction. :P
Vous ne devez entrer que la valeur hexadécimal (537061726B6461656D6F6E) ... :roll:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Sparkdaemon
Niveau 3
Niveau 3
Messages : 38
Enregistré le : jeu. 04 mars 2010 19:18
Localisation : $Coord
Status : Hors ligne

Re: [..] Traduction Héxadécimal -> Binaire

#5

Message par Sparkdaemon »

Bawi.. ça marche !

Merci Tlem, J'édite ;)
Sparkdaemon
Niveau 3
Niveau 3
Messages : 38
Enregistré le : jeu. 04 mars 2010 19:18
Localisation : $Coord
Status : Hors ligne

Re: [R] Traduction Héxadécimal -> Binaire

#6

Message par Sparkdaemon »

Après un résultat concluant, J'aimerai Re-transformer ce binaire en un index,
Je vous explique :

J'aimerai que 0000 deviennes 1, que 0001 deviennes 2, 0010 deviennes 3, Ect...

Comment faire ?
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11791
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Traduction Héxadécimal -> Binaire

#7

Message par Tlem »

1 question => 1 sujet
:evil:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Sparkdaemon
Niveau 3
Niveau 3
Messages : 38
Enregistré le : jeu. 04 mars 2010 19:18
Localisation : $Coord
Status : Hors ligne

Re: [..] Traduction Héxadécimal -> Binaire

#8

Message par Sparkdaemon »

:shock: Oui monsieur :oops:
Répondre