Je suis en train de lire le livre de Charles Petzold 'Code'. Dans ce document, il explique comment convertir un nombre décimal en binaire en utilisant le modèle suivant:Conversion d'un nombre décimal en binaire
[ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
÷128 ÷64 ÷32 ÷16 ÷8 ÷4 ÷2 ÷1
[ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
Dans le livre, son explication sur la façon d'utiliser le modèle lit comme suit:
« Mettre tout le nombre décimal (inférieur ou égal à 255) dans la case située dans le coin supérieur gauche Divisez ce nombre (le dividende) par le premier diviseur (128), en indiquant , puis placez le quotient dans la case ci-dessous (la case en bas à gauche coin), et le reste dans la case à droite (la deuxième case sur la ligne du haut) .Ce premier reste est le dividende pour le prochain calcul, qui utilise un diviseur de 64. Continuez de la même manière à travers le gabarit. Gardez à l'esprit que chaque quotient sera 0 ou 1. Si le dividende est inférieur au diviseur, le quotient est 0 et le reste est simplement le dividende. si le dividende est supérieur ou égal au diviseur, le quotient est 1 et le reste est le diviseur - le diviseur. Voici comment faire avec 150:. »
[150] [22] [22] [22] [6 ] [6 ] [2 ] [0 ]
÷128 ÷64 ÷32 ÷16 ÷8 ÷4 ÷2 ÷1
[1 ] [0 ] [0 ] [1 ] [0 ] [1 ] [1 ] [0 ]
Mais je suis perplexe quand je fais les calculs comme indiqué, je reçois des résultats très différents Ce que je fais est la suivante:
150 ÷ 128 = 1.171875 (Je ne vois pas d'où vient le 22 ci-dessus?) Donc, je place un 1 dans la boîte ci-dessous le 150 et ensuite porter le et l'utiliser comme le dividende pour le prochain calcul, qui bien sûr me met dans toutes sortes de problèmes, et, finalement, pas le nombre binaire 10010110!
Quelqu'un peut-il me dire où je vais mal?
Division entière: 'a = qd + r':' 0 <= r