Les bases

Siham -  
 random -
Salut, j'essais de comprendre comment transformer n'importe quels nombres en base 2, base 5, base 8, base 16. J'y arrive pas. J'ai compris pour le binaire mais bizarrement pas pour le reste.
HELP ME,PLEASE!

4 réponses

souak
 
Bonjour,
J'ai de exos en informatique sur les bases. Le but est de écrire des nombres en base 5, 8, 10, 16. Par exemple, 129? Je ne sais pas comment faire. Le peu de cours que j'ai ,ne traite que les bases 2. Si quelqu'un pouvait m'aider,j'en serais super reconnaissante.
Merci d'avance!!!
0
Galsungen Messages postés 6951 Statut Contributeur 1 422
 
base 16 = hexa décimale

ps : appliques la même méthode que pour la base 2, avec des multiplications ou des divisions par l'indice de ta base (2, 16, ...)

en hexa les valeur sont :

0............0
1............1
2............2
3............3
4............4
5............5
6............6
7............7
8............8
9............9
10..........A
11..........B
12..........C
13..........D
14..........E
15..........F

Et un temps pour chaque chose sous le ciel ... 
0
random
 
je te joins une explication rapide dans mon langage

soit x= nombre a convertir
y= base
z result

si x<base alors x=x
sinon
tant que x > base
y=x modulo base
si base>10 et y>=10 alors y= charactere(10+55) ou charactere fait reference au code asci
z=y+z
x=partie entiere(x/base)
loop

exemple pour 703710 à traduire en hexa

base 16

base 16
X entier(x/base) X modulo base code z
703710 43981 14 E E
43981 2748 13 D DE
2748 171 12 C CDE
171 10 11 B BCDE
10 0 10 A ABCDE

evidemment cela ne marche qu'à partir de la base 10 mais il suffit de généraliser.....
0
Siham
 
Salut Random, merci bcp pour le début de tes explications. Mais alors ,je n'ai rien compris à ton language. Mais, c'est normal. J'en suis qu'au début des bases. De l'informatique, je ne connais que le binéaire. Cette après-midi, j'ai posé la question à une collégue de travail vraiment au hasard et elle m'a expliqué et j'ai compris mais il n'y avais pas de x, y... MCI encore et peut être à bientôt pour d'autre questions.
0
random
 
bonjour

désolé de ne pas avoir été clair

je joins une fonction visual basic utilisable jusqu'à la base 200, cela fonctionnerait au delà, le problème c'est de trouver des signes pour
représenter des chiffres

Function cbase(ByVal nb As Long, base As Variant) As String
Dim rep As String
Dim nbetape As Byte
Dim boucle As Byte
Dim modulo As Variant
On Error GoTo fin
nbetape = CByte(Log(nb) / Log(base)) + 1
For boucle = 1 To nbetape
modulo = nb - (Int(nb / base) * base)
If modulo >= 10 Then
modulo = Chr(modulo + 55)
End If
rep = modulo & rep
nb = Int(nb / base)
Next boucle
cbase = rep
Exit Function
fin:
MsgBox ("données invalides")
End Function
0