Conversion entiers longs > binaire
Salut à tous,
Je travaille actuellement sur les entiers longs non signés (Ulong,uint64) et
il me faut un convertisseur correct pour utiliser des masques etc...mais bizarement ils ne me donnent pas tous les mêmes résultats.Par exemple en ligne (2 exemples:http://pagesperso-orange.fr/serge.kn...vertisseur.htm et http://www.easycalculation.com/decimal-converter.php) le décimal "36028797018963970" donne en binaire "10000000000000000000000000000000000000000000000000000000" alors que les exemples de progs comme celui-ci:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
Module Module1
Sub Main()
Dim value As ULong = 36028797018963970UL
Console.WriteLine(Bin(value))
Console.Read()
End Sub
Private Function Bin(ByVal x As ULong) As String
Dim temp As String
temp = ""
Do
If x Mod 2 Then
temp = "1" + temp
Else
temp = "0" + temp
End If
x = x \ 2
If x < 1 Then Exit Do
Loop
Bin = temp
End Function
End Module |
donnent "10000000000000000000000000000000000000000000000000000010"
comme binaire.Etonant aussi c'est qu'en ligne 36028797018963970 et 36028797018963968 renvoient le même binaire.Donc j'aimerai savoir s'il existe un convertisseur d'entiers longs fiable et pourquoi il y a des différences entre plusieurs versions et lequel donne le bon binaire.Merci.
Salutations.