Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Help Comment Convertir un chiffre de Base 10 en base 2

0 views
Skip to first unread message

Tom

unread,
May 3, 2000, 3:00:00 AM5/3/00
to
Bonjour
voilà j'ai un long , par exemple - 21304678
et j'aimerai le coder sur 32 Bits (par des 0 et des 1 quoi)
et récupérer le résultat dans une string par exemple

Comment faire ?

existe il une fonction VB (pas trouvé) ?
ou quelqu'un a t il le code d'une telle fonction ?

merci

Thomas LARCHER

docmartin

unread,
May 3, 2000, 3:00:00 AM5/3/00
to
Bonjour Thomas.

Jette un coup d'oeil sur basmath.zip sur la page
http://www.extreme-vb.net/bas

@+


* Sent from RemarQ http://www.remarq.com The Internet's Discussion Network *
The fastest and easiest way to search and participate in Usenet - Free!


docmartin

unread,
May 3, 2000, 3:00:00 AM5/3/00
to
Il y a aussi une fonction de conversion intéressante
Public Function ConvertBase(NumIn As String, BaseIn As Integer, _
Baseout As Integer) As String

dans http://www.codearchive.com/vbasic/MediaInfo.zip

@+

Tom

unread,
May 4, 2000, 3:00:00 AM5/4/00
to
OK merci pour tout ca..Mais hélàs ca ne gère pas correctement le signe

Rappel pour les signes :
32 bits à 1 en base 2 est égal à -1 en base 10
le premier bit à 0 et les 31 autres à 1 donnent 2,147,483,647

je cherche donc tjs la solution...
(je plante vraiment là..)

docmartin

unread,
May 4, 2000, 3:00:00 AM5/4/00
to
Bonjour Tom.

Les nombres entiers négatifs sont représentés en
utilisant le complément à deux. Pour obtenir la
représentation de complément à deux d'un nombre négatif,
1) tu prends la représentation binaire de la valeur
absolue du nombre,
2) puis tu inverses tous les bits
3) et finalement tu additionnes 1.

Par exemple:

4 Decimal = 0000 0000 0000 0000 0000 0000 0000 0100
1111 1111 1111 1111 1111 1111 1111 1011 inversez
-4 = 1111 1111 1111 1111 1111 1111 1111 1100 ajoutez 1

1 Decimal = 0000 0000 0000 0000 0000 0000 0000 0001
1111 1111 1111 1111 1111 1111 1111 1110
-1 = 1111 1111 1111 1111 1111 1111 1111 1111

http://support.microsoft.com/support/kb/articles/Q42/9/80.asp

Tom

unread,
May 5, 2000, 3:00:00 AM5/5/00
to
OK merci!

je n'arrivais plus à me souvenir de la méthode du complément à 2
étrangement je n'ai trouvé aucun convertisseur en complément à 2
je vais peut etre pouvoir apporté ma contribution du coup alors!

bon jvais bosser sur mon algo maintenant
merci encore

docmartin <gerardb...@colba.net.invalid> a écrit dans le message :
0670adac...@usw-ex0108-063.remarq.com...

docmartin

unread,
May 5, 2000, 3:00:00 AM5/5/00
to
Bonne continuation.

@+

"Tom" <lar...@amitel.fr> a écrit:

Hervé

unread,
May 5, 2000, 3:00:00 AM5/5/00
to

Tom a écrit dans le message ...

>Bonjour
>voilà j'ai un long , par exemple - 21304678
>et j'aimerai le coder sur 32 Bits (par des 0 et des 1 quoi)
>et récupérer le résultat dans une string par exemple
>
>Comment faire ?
Tu convertis d'abord ton nombre en base 16 avec la fonction Hex$() (qui
tient bien compte du signe). Tu change ensuite chaque lettre par une suite
de 8 bits
en gros
Function Binaire(Byval Entier As Long) As String
Dim Hexa As String
Dim Resultat As String
Dim i As Integer
Hexa = Right$("00000000" + Hex$(Entier), 8)
Resultat = ""
For i = 1 to 8
Select Case Mid$(Hexa, i, 1)
Case "0": Resultat = Resultat + "0000"
Case "1": Resultat = Resultat + "0001"
Case "2": Resultat = Resultat + "0010"
....
Case "F": Resultat = Resultat + "1111"
End Select
Next i
Binaire = Resultat
End Function


Hervé

0 new messages