Codage binaire
je savais ou trop mettre ce post
je suis en train d'étudier le codage binaire de réel non signé
j'ai essaye de conertir
67(8) en base 10
j'aimerai savoir
pourquoi il faut faire ca
7 + 6* 8 = 55
et non 7*8+6 = 66 ?
pour cet exemple c6 (16)
j'aimerai également savoi pour faire ainsi
16*12+6
et non
16*6+12
merci
21 réponses
Conversion des nombres non signés entre bases: on montre pourquoi 67(8) vaut 6×8+7 en décimal et non 7×8+6, soulignant l’importance des puissances de base et de l’ordre des chiffres. Pour l’exemple 67 en base 8, la valeur décimale s’obtient en appliquant les puissances de 8 du côté des chiffres les moins significatifs, donc 6×8 + 7, et non l’inverse. Pour l’exemple hexadécimal C6, la valeur décimale est 12×16 + 6, et non 16×6 + 12, ce qui illustre que le chiffre le plus à droite représente 16^0. Des échanges évoquent des méthodes de complément à deux pour les nombres négatifs et des décalages pour multiplier par 2^n, mais ces points relèvent du signe plutôt que de la conversion non signée.
-
Je vais tenter de te l'expliquer...
en base 10 prenons 123
c'est égale à 1 * 10 * 10 + 2 *10 + 3 = 123
en base 8 prenons 67
on fait le meme procédé
6 * 8 + 7 =55
en binaire
101010 = 1*2*2*2*2*2 + 0*2*2*2*2 +1*2*2*2 + 0*2*2 + 1* 2 + 0 == 32 +0 +8+0+2+0 == 42
Nettogrof tseb era seiromem emoS -
dc par expempre pour
10011 (2) = 1 (4^2)+0(3^2)+0(2^2)+1(1^2)+1(0^2=
= 19
? -
Exacte!!
Et pour les autre base tu as jsute à changer les "2" pour la base approprié ( 8,10, 16)
Nettogrof tseb era seiromem emoS -
quand c des réel signé c pareil ?
-
par exemple comment faire pour coder
-1 en base 2 ?
merci
http://www.independza.com
http://moi.independza.com -
Parlez du Big/Little Endian qu'on rigole un instant :-D . (le décimal usuel est BE)
Pour -1 on prend la valeur absolue puis on complémente et on ajoute 1.
00000001 -> 1111110 -> 11111111 -
donc
première je mets - 1 en valeur absolue qui me donne cela
0000 0001
puis apres on fais koi ? on complete quoi ?
j'ai pas compris apres
http://www.independza.com
http://moi.independza.com -
si tu veux coder -1 sur 8 bit:
tu le marque en valeur absolue :0000 0001
ensuite a partir du premier 1 tu inverse tous (en gardant le premier 1) donc on a :1111 1111
exemple pour -2:
valeur absolue : 0000 0010
on inverse : 1111 1110-
Bonsoir,
est ce que vous pouvez m'expliquer ça ci c'est possible:
"· Permettre une multiplication par 2n (en effet le fait de décaler un nombre binaire d'un chiffre à gauche le multiplie par 2, ainsi en effectuant cette opération n fois on obtient une multiplication par 2n)
exemple:
00010 (2 en décimale)
00100 (on décale à gauche on obtient 4)
01000 (on décale à gauche à nouveau, on obtient 8) "
j'arrive pas a comprendre cette histoire de décalage.
merci. -
@adoultiBonsoir,
C'est exactement la même chose qu'en décimal ... sauf qu'en décimal ... la base est 10 qui s'écrit, comme toutes les bases dans leur base avec un "1" suivi d'un "0" (autrement dit "10"). Etonnant, non ? -
@MardenJ'aimerais savoir lorsque l'on fait un multiplcation d'un nombre négatif et d'un nombre positif c'est la meme chose
j'ai essaye de multiplier
-5*7 j'ai ca
1011
*0111
-----
1011
1011.
1011..
1011...
0000....
-------
1001101
Est ce que c bon ?
http://www.independza.com
http://moi.independza.com
-
-
dc pour coder en
-10 ca donne
valeur absolue
0000 1010
puis j'ajoute 1
1111 1010
? c bien ca ?
http://www.independza.com
http://moi.independza.com -
00001010 -> 11110101 -> 11110110
-
-
Non regarde bien ce que tu as complémenté -> [1111]1010 or il faut tout complémenter càd [11110101] puis apres on ajoute 1.
-
je m'embrouille dans le message précédent de lejujusms il dit qui faut
" ensuite a partir du premier 1 tu inverse tous (en gardant le premier 1) donc on a :1111 1111 "
c'est pas ce qu'il faut faire
?
http://www.independza.com
http://moi.independza.com -
bob a ecrit -10:
00001010 -> 11110101 -> 11110110
valeur absolue on garde le premier 1 puis on
inverse -
ok j'ai compris :)
j'ailmerais savoir si je veux coder -1 en base 16 je fais comment ?
http://www.independza.com
http://moi.independza.com -
A mon avis le plus simple c'est de passer par le binaire puis passer par l'hexa.
binaire:
0000001 -> 11111110 -> 11111111
hexa:
1111 1111 -> FF -
-
j'ai essaye de code 129(10) en base 2 et j'ai trouve cela
1000 0001 (2)
dans le tableau de mon prof c marque inpossible de codé en 8 bits
ou je me suis trompée
merci
http://www.independza.com
http://moi.independza.com -
Juste une petite precision de vocabulaire. L'operation décrite fort justement par Bob s'appelle complement à 2 (complement à 1 de la valeur absolue en base 2 puis addition de 1 sur le bit de poids faible).
Et effectivement tu ne peux pas représenter 129(10) sur un octet signé, car pour des entiers tu utilises 8 bits, donc 2^8 = 256 valeurs, mais avec le signe tu n'as plus que 2^(8-1)=128 valeurs.
La plage de valeur est 2^(8-1)-1=127 --> -2^(8-1)-1=-128 donc pas de 129 possible. -
j'ai deux autre questions
1. pour pouvoir convertir un nombre en base 2 j'utilse la division
comment faire pour diviser un nombre par exp
2/3 et avoir toujour un nombre entier
je m'en souviens +
2. quand on a un chiffre relatif comme 2.25
comment faire pour le convertir en base 2
merci
http://www.independza.com
http://moi.independza.com
- 1
- 2