Sujet Nombre décimal / binaire
- 11 réponses
- 3 participants
- 1 021 vues
- 1 follower
pff... encore lui...
308
Posteur·euse AFfamé·e
Premier post
1 Posté le 24/02/2004 à 15:48:46Nombre décimal / binaire
Je souhaite savoir comment convertir un nombre décimal en un nombre binaire, 22 bits, format 2.20 ; ou 24 bits au format 1.23
- 1
- 2
Anonyme
10184
2 Posté le 24/02/2004 à 15:52:35
Quel est le type de représentation que tu utilises ?
22bit ça dit pas grand-chose, c'est du flottant, du fixe, big endian, little endian, signé, non signé quelle est la taille de la mantisse?
22bit ça dit pas grand-chose, c'est du flottant, du fixe, big endian, little endian, signé, non signé quelle est la taille de la mantisse?
pff... encore lui...
308
Posteur·euse AFfamé·e
3 Posté le 24/02/2004 à 15:54:54
...ok, je recherche les infos et je te réponds....
Anonyme
10184
4 Posté le 24/02/2004 à 16:03:10
Si c'est juste des entiers, il suffit pour les signés de convertir en divisant pas des puissances de 2 pour chaque rang
par ex: 153
c'est suppérieur à 128 mais inférieur à 256 donc il faut diviser par 2^7, ce qui fait 1, reste 25, 25divisé par 2^6=0, reste 25, 25 divisé par 2^5=0 reste 25, divisé par 2^4 =1 reste 6... etc...
à la fin en mettant ensemble les résultats, tu tombe sur 10011110 ...
ça c'est pour les entiers positifs...
par ex: 153
c'est suppérieur à 128 mais inférieur à 256 donc il faut diviser par 2^7, ce qui fait 1, reste 25, 25divisé par 2^6=0, reste 25, 25 divisé par 2^5=0 reste 25, divisé par 2^4 =1 reste 6... etc...
à la fin en mettant ensemble les résultats, tu tombe sur 10011110 ...
ça c'est pour les entiers positifs...
pff... encore lui...
308
Posteur·euse AFfamé·e
5 Posté le 24/02/2004 à 16:04:11
Bon alors, c'est pour calculer des coefficients pour un DSP...
> format : 2.20
range : -2.0 to (2.0 - 1LSB)
> format 1.23, clipped
> format 3.23
range : -4.0 to (4.0 - 1 LSB)
désolé, mais le binaire et moi....
> format : 2.20
range : -2.0 to (2.0 - 1LSB)
> format 1.23, clipped
> format 3.23
range : -4.0 to (4.0 - 1 LSB)
désolé, mais le binaire et moi....
Anonyme
10184
6 Posté le 24/02/2004 à 16:21:50
Pour les signés (donc avec positif et négatif) tu vire un bit pour le signe, donc si t'avais 8bits, tu n'en utilisera que seulement 7, là il reste encore à transformer tes 7 bits restants en un complément:
sur 8 bits, 83 devient 01010011
mais si tu veux représenter le négatif pour un ordinateur, le premier bit devient un bit de signe, reste 7 bits qui doivent être convertis en complément
à savoir si 83 = 01010011 en binaire signé, 11010011 n'est pas égale à -83 mais à -45
-83 -45 = -128, c'est à dire le nombre minimal représentable en 8bits signé moins un.
pour avoir -83, il suffit de faire un complément
| 10000000 (128)
| - 01010011 (83)
| = 00101101 (45)
-83 est donc égale à 10101101 (le premier bit étant pour dire que c'est un négatif)
sur 8 bits, 83 devient 01010011
mais si tu veux représenter le négatif pour un ordinateur, le premier bit devient un bit de signe, reste 7 bits qui doivent être convertis en complément
à savoir si 83 = 01010011 en binaire signé, 11010011 n'est pas égale à -83 mais à -45
-83 -45 = -128, c'est à dire le nombre minimal représentable en 8bits signé moins un.
pour avoir -83, il suffit de faire un complément
| 10000000 (128)
| - 01010011 (83)
| = 00101101 (45)
-83 est donc égale à 10101101 (le premier bit étant pour dire que c'est un négatif)
pff... encore lui...
308
Posteur·euse AFfamé·e
7 Posté le 24/02/2004 à 16:31:30
Citation : > format : 2.20
range : -2.0 to (2.0 - 1LSB)
j'ai chopé des exemples:
Citation : 1000000000000000000000 = -2.0
1100000000000000000000 = -1.0
1111111111111111111111 = (1 LSB below 0.0)
0000000000000000000000 = 0.0
0100000000000000000000 = 1.0
0111111111111111111111 = (2.0 - 1 LSB)
mais pour les autre valeurs, 1.4 par exemple, ou -0.9 ?
Anonyme
10184
8 Posté le 24/02/2004 à 17:00:20
Si je traduis, c'est du signé, le premier bit est donc un bit de signe, le 2è est pour les entiers et le reste pour les valeurs intermédiaires... donc une représentation à virgule fixe...
0000000000000000000000 = 0.0
0100000000000000000000 = 1.0
on est bien dans une notation avec complément car le nombre négatif le plus proche de zéro est
1111111111111111111111 (premier bit = bit de signe)
par contre j'ai pas assez d'info pour dire à coup sûr comment les bits suivants vont être interprètés...
mais 0000000000000000000001 devrait être équivalent à 1/(2^20), donc 0,4 devrait être équivalent à 0000100000000000000000 (enfin, je crois)
0000000000000000000000 = 0.0
0100000000000000000000 = 1.0
on est bien dans une notation avec complément car le nombre négatif le plus proche de zéro est
1111111111111111111111 (premier bit = bit de signe)
par contre j'ai pas assez d'info pour dire à coup sûr comment les bits suivants vont être interprètés...
mais 0000000000000000000001 devrait être équivalent à 1/(2^20), donc 0,4 devrait être équivalent à 0000100000000000000000 (enfin, je crois)
pff... encore lui...
308
Posteur·euse AFfamé·e
9 Posté le 24/02/2004 à 17:04:12
Merci de ton aide...
...tu sais pas s'il existe des logiciels qui peuvent faire la conversion ?
...tu sais pas s'il existe des logiciels qui peuvent faire la conversion ?
Anonyme
10184
10 Posté le 24/02/2004 à 17:49:39
Ben avec un papier et un crayon + la calculette de windows, tu devrais pouvoir t'en sortir
- < Liste des sujets
- Charte
- 1
- 2