J'ai finalement réussi. Pour les personnes intéressé :
Code : Tout sélectionner
Func uint32_To_uint8($Int32)
Local $i, $sBinChar = ""
If StringRegExp($Int32, '[[:digit:]]') Then
$i = 1
Do
$x = 16 ^ $i
$i += 1
; Determine the Octets
Until $Int32 < $x
For $n = 4 * ($i - 1) To 1 Step -1
If BitAND(2 ^ ($n - 1), $Int32) Then
$sBinChar &= "1"
Else
$sBinChar &= "0"
EndIf
Next
Else
Return -1
EndIf
$sBinCharLen = StringLen($sBinChar)
$sBinCharMid = StringMid($sBinChar, $sBinCharLen - 7)
If StringRegExp($sBinCharMid, '[0-1]') Then
$lngResult = 0
For $intIndex = StringLen($sBinCharMid) To 1 Step -1
$strDigit = StringMid($sBinCharMid, $intIndex, 1)
Select
Case $strDigit = "0"
Case $strDigit = "1"
$lngResult = $lngResult + (2 ^ (StringLen($sBinCharMid) - $intIndex))
Case Else
$lngResult = 0
$intIndex = 0
EndSelect
Next
Return $lngResult
Else
Return -2
EndIf
EndFunc ;==>uint32touint8
Sans rentrer dans les détails je converti ma valeur en binaire, je vire tout les premiers bits excepté les 8 derniers puis je reconverti en decimal. Je devine aisément que mon code est long d'être optimale, libre à vous de l'optimiser tant que vous le partager ici
EDIT: Le code n'est pas de moi, j'ai trouvé qqn qui à coder un convertisseur binaire, hexa, deci sur le forum anglais et j'ai récupérer les parties dont j'avais besoin. Je l'aurais bien cité mais je n'arrive pas à remettre la main sur le post...