Codage binaire

bolo -  
bolo972 Messages postés 87 Statut Membre -
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

  • 1
  • 2
  1. Nettogrof Messages postés 522 Statut Membre 672
     
    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
  2. bolo
     
    dc par expempre pour
    10011 (2) = 1 (4^2)+0(3^2)+0(2^2)+1(1^2)+1(0^2=
    = 19

    ?
    0
  3. Nettogrof Messages postés 522 Statut Membre 672
     
    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
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Bob
     
    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
  6. lejujusms
     
    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. adoulti Messages postés 56 Date d'inscription   Statut Membre
       
      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
      1. Marden Messages postés 1075 Statut Membre 210 > adoulti Messages postés 56 Date d'inscription   Statut Membre
         
        Bonsoir,

        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
      2. bolo972 Messages postés 87 Statut Membre 6 > Marden Messages postés 1075 Statut Membre
         
        J'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
  7. Bob
     
    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
  8. bolo972 Messages postés 87 Statut Membre 6
     
    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
    0
  9. lejujusms
     
    bob a ecrit -10:
    00001010 -> 11110101 -> 11110110
    valeur absolue on garde le premier 1 puis on
    inverse
    0
  10. Bob
     
    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
  11. rubidium Messages postés 95 Statut Membre
     
    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. rubidium Messages postés 95 Statut Membre
       
      Il faut 16 bits si tu veux que ce soit signé. Sinon 8 suffisent.
      0
  12. bolo972 Messages postés 87 Statut Membre 6
     
    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