Étape 2: Notions de base (suite) de Base : binaire
Comme son nom l’indique, un système binaire se compose de deux chiffres: 1 et 0. En conséquence, c’est appelé pour comme base 2 et numéros ressembler 100100102. Dans un tel système, la représentation de valeurs sont réalisées grâce à un système de « pouvoir de deux ». Chaque place dans un nombre binaire, souvent dénommé un peu, ayant une valeur particulière qui peut facilement être déterminée. Nombres binaires sont généralement rédigées comme un multiple de 8, ou un octet. Parfois, seulement quatre bits de l’octet, soit la moitié supérieure ou inférieure sont utilisés, et ces quatre bits sont appelés collectivement un grignotement. Nibbles devient importants lors de la conversion entre les bases, comme nous le verrons plus tard.
Sans faire une digression, je vais utiliser la notation big endian lorsque les entiers sont stockés en mémoire commençant par le bit le plus significatif (MSB) et finissant avec le bit le moins significatif (LSB). L’emplacement de la valeur d’une donnée binaire est déterminé en prenant deux (le nombre de chiffres dans notre système binaire) à la puissance de la mèche placer à l’aide d’un index de base zéro: 2 bit. Par exemple, le LSB de le nibble est 20 ou 1. Le quatrième bit, c'est-à-dire la troisième place (n’oubliez pas que nous commençons à zéro) valeur est 23 ou 8. Nous allons juste regarder quelques exemples pour le rendre plus clair. Voici comment un grignotement est représenté en binaire.
Zero-based index 3 2 1 0 Bit place 4th 3rd 2nd 1st Bit value 8 4 2 1 Example values: Decimal 12 1 1 0 0 Decimal 5 0 1 0 1
Si la valeur du bit est à ajouter (ou comptés) que le bit est un 1, sinon il sera un 0. Sachant cela, la valeur décimale « 1 » est écrit « 0001 » car le 1er bit est défini et que la valeur est un. La valeur décimale « 10 » est écrit en binaire comme « 1010 » et si vous ajoutez la valeur du bit de l’endroit où il y a un 1, alors vous verrez il ajoute à 10. De cette façon, un grignotement peut représenter les nombres entre 0 et 15. Un plus grand nombre nécessite l’utilisation de l’ordre Haut nibble.
Bit place 8th 7th 6th 5th 4th 3rd 2nd 1st Bit value 128 64 32 16 8 4 2 1 Example value: Decimal 88 0 1 0 1 1 0 0 0 Decimal 253 1 1 1 1 1 1 0 1
Ajouter les valeurs de bits pour chaque bit est l’endroit qui a un 1 pour vous satisfaire que les valeurs décimales sont fidèlement représentés par la valeur binaire à sa droite.
Je couvrirai binaire addition, soustraction, multiplication, division, points flottants et les nombres négatifs par l’intermédiaire de 2 complément et de 1 complément dans un plus tard instructable j’ai déjà commencé à travailler appelé Comment calculer comme un microcontrôleur, mais voici un aperçu comme une séduction (Oui, comme les mathématiques binaires peuvent être une séduction, droite?) pour visualiser et noter mes autres instructables. :)
Aperçu de la façon de calculer comme un microcontrôleur .
Arithmétique binaire : Addition et soustraction
Arithmétique binaire est très simple et directe. Vous devriez vous familiariser avec la représentation binaire des nombres zéro par le biais de trois, si vous n’avez pas ces commis à cœur. Ils sont 00, 01, 10 et 11. La principale chose à retenir est de porter sur ceux et c’est la chose la plus difficile, que vous aurez à faire, donc respirer à l’aise.
Je vais ajouter 15810 et 5110 en binaire, qui si vous avez déjà ajouté les rendements 20910. Suivre et vérifier mes calculs.
1001 1110 + 0011 0011 -------------
Ajouter maintenant, vers le bas de la LSB (extrême droite) se déplacer vers la gauche. Le premier est 0 + 1, c'est-à-dire 1. Le prochain est 1 + 1, 2, mais en binaire est 10. Il s’agit de deux chiffres alors il faut reporter celui-là à la colonne suivante.
1001 1110 + 0011 0011 ------------- 01 ------------- 1
Dans cette colonne, c’est 1 + 0 + 1, qui est encore une fois, deux, ou 10. Transporter de celui-là. Continuer.
1001 1110 + 0011 0011 ------------- 0001 ------------- 1111
Maintenant, nous avons 1 + 1 + 1, qui est de trois, ou, oui, vous l’avez deviné : 11. Donc au lieu de mettre un zéro et portant un 1, mis un 1 et porter un. Continuer jusqu’au bout.
1001 1110 + 0011 0011 ------------- 1101 0001 ------------- 111111
Le 11010001 est de2 20910, alors nous avons fait nos calculs correctement.
Arithmétique binaire : Multiplication et Division
Dans le système de base 2, division et multiplication par une puissance de deux est aussi facile à faire par la droite et à gauche, déplacement, respectivement. Changement de vitesses est exactement comme ça : quand vous avez quitté Maj par n, vous prenez tous la 1 et de 0 et déplacez-les n places vers la gauche, remplissant les lieux décalés avec un 0. Lorsque vous droit logiquement Maj par endroits n, vous déplacez tous le binaire des valeurs n places vers la droite, les déplacé encoches de remplissage de 0 (il y a aussi un décalage arithmétique vers la droite, mais je ne le couvrir ici). Dans l’exemple ci-dessous, j’ai déplacer le nombre 4 vers la gauche d’un bit. Le bit #1 est la 2ème à droite dans notre système d’index de base zéro, et nous pouvons aussi écrire 21 ou 2. Cela devrait entraîner une multiplication de 4 * 21 ou 8.
Left shift: 4 << 1 Bit value: 8 4 2 1 Binary: 4 = 0 1 0 0 Shifted to the left one bit: 1 0 0 0 = 8 denary
Vous pouvez voir comment décalage vers la gauche change le nombre de quatre à huit, ce qui multiplie la valeur par deux. Nous pourrions faire aussi évoluer gauche de deux bits ou n’importe quel nombre de bits de 1 à n - 1, où n est le nombre de bits dans notre nombre binaire. Par conséquent, déplacer un fichier binaire nombre vers la droite divise efficacement le nombre par une puissance de deux. Pensez que si vous n’êtes pas clair alors jetez un oeil ci-dessous. Ici, nous déplacer deux 32 bits vers la droite, divisant efficacement 32 par 22 , ce qui donne 8.
Right shift: 32 >> 2 Bit value: 128 64 32 16 8 4 2 1 Binary 32 = 0 0 1 0 0 0 0 0 Shifted to the right two bits: 0 0 0 0 1 0 0 0
C’est loin de toutes les opérations binaires fondamentale, mais c’est une couverture adéquate pour nos lil' ' ol instructable ici.