Page 1 sur 1

[..] Traduction Binaire -> Index ?

Posté : lun. 19 avr. 2010 17:45
par Sparkdaemon
Bonjour a tous,
Tout d'abord, merci a Tlem pour la réponse pour traduire de l'héxa vers le binaire,
Un nouveau souci viens me perturber..

Je sépare mes 'numéros' binaires pour par la suite les convertir en numéros allant de 1 a 15

0000 est 1, et 1111 est 15,
J'ai crée une fonction, qui vérifiait après le Split si la variable était bien un array,

Code : Tout sélectionner

If isarray($split) then
...
endif
L'array était bien O.K, mais quand j'ai essayé de traiter ma variable, et de remplacer le binaire par l'index, ça m'a retourné une érreur..
J'ai supprimé mon code, et repris celui de Tlem, mais je ne sait pas trop comment faire mon algorithme..

Code : Tout sélectionner

Func _HexToBinaryString($HexValue)
    Local $Allowed = '0123456789ABCDEF'
    Local $Test, $n
    Local $Result = '', $index = ''
    If $HexValue = '' Then
        SetError(-2)
        Return
    EndIf
    TrayTip("", "Step 3", 0)
    $HexValue = StringSplit($HexValue, '')
    For $n = 1 To $HexValue[0]
        If Not StringInStr($Allowed, $HexValue[$n]) Then
            TrayTip("", $n&" sur "&$HexValue[0], 0)
            SetError(-1)
            Return 0
        EndIf
    Next
    TrayTip("", "Step 4", 0)

    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   ;==>_HexToBinaryString
J'espère que mon souci est clair.. ^^

Re: [..] Traduction Binaire -> Index ?

Posté : lun. 19 avr. 2010 18:01
par Tlem
Sparkdaemon a écrit :Je sépare mes 'numéros' binaires pour par la suite les convertir en numéros allant de 1 a 15

0000 est 1, et 1111 est 15
Je pense que votre réflexion est erronée, car à première vue, vous voulez convertir un binaire en décimal, et dans ce cas, 0000 = 0, 0001 = 1, 0010 = 2, ..., 1111 = 15.

Donc deux solutions :
1- Utiliser le nombre hexadécimal pour le convertir en binaire + décimal afin de créer votre tableau.

2- Utiliser un fonction qui vous permettra de convertir le binaire en décimal.
Dans ce cas, je vous renvoie vers le message d'origine de la fonction _HexToBinaryString(), qui intègre d'autre fonction tel que (comme par hasard) _BinaryToDec(). ;)
Le sujet est ici : http://www.autoitscript.com/forum/index ... opic=70507

Amusez vous bien. :lol: