Codage binaire

salut

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

Résumé de la discussion

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.

Bobot (l’IA à votre service)
  1. 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
    0
    1. dc par expempre pour
      10011 (2) = 1 (4^2)+0(3^2)+0(2^2)+1(1^2)+1(0^2=
      = 19

      ?
      0
      1. Exacte!!

        Et pour les autre base tu as jsute à changer les "2" pour la base approprié ( 8,10, 16)

        Nettogrof tseb era seiromem emoS
        0
        1. quand c des réel signé c pareil ?
          0
          1. 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
            0
            1. 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
              0
              1. 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.
                0
              2. @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 ?
                0
              3. @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
                0
            2. 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.
              0
              1. bob a ecrit -10:
                00001010 -> 11110101 -> 11110110
                valeur absolue on garde le premier 1 puis on
                inverse
                0
                1. 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
                  0
                  1. 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.
                    0
                    1. Il faut 16 bits si tu veux que ce soit signé. Sinon 8 suffisent.
                      0
                  2. 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
                    0
                    • 1
                    • 2