Soyez le premier à donner votre avis sur cette source.
Vue 6 590 fois - Téléchargée 245 fois
Function SHL(x As Byte, i As Integer) As Byte ' shl(octet ,nombre de décalage) SHL = ((x * 2 ^ i) And 255) End Function Function SHR(y As Byte, k As Integer) As Byte ' shr(octet ,nombre de décalage) SHR = CByte(Int(y / (2 ^ k))) End Function Function Dec2Hex(dec As Long) As String Dec2Hex = hex(dec) End Function Function Hex2Dec(hex As String) As Long Hex2Dec = Val("&h" & hex) End Function Function Hex2Bin(hex As String) As String Dim i As Byte Dim resultat As String For i = 1 To Len(hex) Select Case Mid(hex, i, 1) Case "0": resultat = resultat & "0000" Case "1": resultat = resultat & "0001" Case "2": resultat = resultat & "0010" Case "3": resultat = resultat & "0011" Case "4": resultat = resultat & "0100" Case "5": resultat = resultat & "0101" Case "6": resultat = resultat & "0110" Case "7": resultat = resultat & "0111" Case "8": resultat = resultat & "1000" Case "9": resultat = resultat & "1001" Case "A": resultat = resultat & "1010" Case "B": resultat = resultat & "1011" Case "C": resultat = resultat & "1100" Case "D": resultat = resultat & "1101" Case "E": resultat = resultat & "1110" Case "F": resultat = resultat & "1111" End Select Next i Hex2Bin = resultat End Function Function Bin2Dec(bin As String) As String Dim i As Byte Dim resultat As Long resultat = 0 For i = 1 To Len(bin) If Mid(bin, Len(bin) - i + 1, 1) = 1 Then resultat = resultat + 2 ^ (i - 1) End If Next i Bin2Dec = resultat End Function
Soit faut l'implémenter dans VB en ASM par une tlb, voir sources de Ebartsoft.
Soit moins compliqué, tu te fais une DLL native qui te fera tout cela en qlqs cycles.
le passage en string dans shl est pour evité la dépassement de la capacité de la type byte.
car le la valeur maximun d'un byte est 255 , et si j'ai 255 qui est FF en hexa et je veux le décalé par un ( donc 2*255) on va dépassé la capacité,donc pour cette raison j'ai changé le type en string .
Amicalement
Chalandi Amine
ah, et j'ai pas compris le pasage en String dans SHL
xx = CStr(x) 'Conversion de x en string
For n = 1 To i
xx = xx * 2 ' décalage de xx
Next
xx = xx Mod 256 ' metre XX sur un octet
SHL = CByte(xx) '
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.