Exprimant nombres binaires en C ++

Les variables en langage C de sont stockées en interne comme des nombres dits binaires. Les nombres binaires

Sommaire

sont stockés sous la forme d'une séquence de valeurs 1 et 0 connus comme morceaux. La plupart du temps, on n'a pas vraiment besoin de travailler avec des nombres au Niveau double peu cependant, il ya des occasions où le faire est pratique. C ++ fournit un ensemble d'opérateurs à cet effet.

Les soi-disant opérateurs logiques binaires fonctionnent sur leurs arguments au niveau du bit. Pour comprendre comment ils fonctionnent, d'examiner comment les variables ordinateurs de magasins.

Le système de nombre décimal

Les numéros que vous êtes familier avec sont connus comme nombres décimaux parce qu'ils sont basés sur le nombre 10. En général, le programmeur exprime les variables du langage C de les nombres décimaux. Ainsi, vous voulez dire que la valeur de var est 123, par exemple.

Un nombre tel que 123 se réfère à 1 * 100 * 10 + 2 + 3 * 1. Chacun de ces nombres de base - 100, 10, 1 et - est une puissance de dix.

123 = 1 * 100 * 10 + 2 + 3 * 1

Exprimé d'une manière légèrement différente, mais équivalente:

123 = 1 * 102 + 2 * 101 + 3 * 100




Rappelez-vous que tout nombre à la puissance zéro est 1.

Autres systèmes de numération

L'utilisation d'un indice de base de 10 pour le système de comptage de tiges, selon toute probabilité, du fait que les humains ont 10 doigts, les outils de comptage d'origine. L'alternative aurait été la base 20.

Si les chiens avaient inventé notre système de numérotation, il se pourrait bien avoir été fondée sur le chiffre 8 (un chiffre de chaque patte est hors de la vue sur la partie arrière de la jambe). Un tel octal système aurait fonctionné tout aussi bien:

12310 * 8 = 12 + 7 * 81 + 3 * 80 = 1738

Le petit 10 et 8 ici se réfèrent au système de numérotation, 10 pour décimal (base 10) et 8 pour octal (base 8). Un système de comptage peut utiliser toute base positif.

Le système de numération binaire

Les ordinateurs ont essentiellement deux doigts. (Peut-être que la raison pour laquelle les ordinateurs sont si stupides: Sans un pouce opposable, ils ne peuvent rien saisir Et puis, peut-être pas..) Ordinateurs préfèrent compter en utilisant la base 2. Le nombre 12310 serait exprimée en tant que:

12310 = 128 * + 0 1 + 1 * 64 * 32 * 16 + 1 + 1 * 8 + 0 * 4 * 2 + 1 + 1 * 1
= 011110112

Il est toujours convention pour exprimer les nombres binaires en utilisant 4, 8, 32, ou 64 chiffres binaires, même si les premiers chiffres sont nuls. Ceci est également en raison de la façon dont les ordinateurs sont construits en interne.

Parce que le terme chiffre se réfère à un multiple de dix, un chiffre binaire est appelé bit. Le terme provient de binaire (b-) chiffres (-il). Huit bits forment un octet. Un mot est généralement deux ou quatre octets.

Avec une telle petite base, il est nécessaire d'utiliser un grand nombre de bits pour exprimer des nombres. Il est peu pratique à utiliser une expression telle que 01.111.0112 d'exprimer une telle valeur banal que 12310. Les programmeurs préfèrent exprimer des nombres par des unités d'octets, ou huit bits.

Un seul, chiffres à quatre bits est essentiellement base 16, parce que quatre bits peuvent exprimer jusqu'à une valeur de 0 à 15. Base de 16 est connu comme le hexadécimal système de comptage. Hexadécimal est souvent contractée simplement hex.

Hexadécimal utilise les mêmes chiffres pour les chiffres de 0 à 9. Pour les chiffres entre 9 et 16, hexadécimal utilise les six premières lettres de l'alphabet: A 10, B 11, et ainsi de suite. Ainsi, 12310 devient 7B16.

123 = 7 * 161 + B (à savoir, 11) * 160 = 7B16

Parce que les programmeurs préfèrent exprimer des nombres en 4, 8, 32, ou 64 bits, ils préfèrent similaire pour exprimer des nombres hexadécimaux en 1, 2, 4, ou 8 chiffres hexadécimaux même lorsque les premiers chiffres sont 0.

Enfin, il est peu commode d'exprimer un nombre hexadécimal comme 7B16 en utilisant un indice, parce que les terminaux ne supportent pas les indices. Même sur un traitement de texte, il est gênant de changer les polices et à partir du mode indice suffit de taper deux chiffres. Par conséquent, les programmeurs utilisent la convention de commencer un nombre hexadécimal avec un 0x (la raison d'une si étrange condamnation remonte aux premiers jours de C). Ainsi, 7B devient 0x7B. Grâce à cette convention, 0x7B est égal à 123 (0x123 tout est égal à 291.)

Tous les opérateurs mathématiques peuvent être réalisées sur les nombres hexadécimaux de la même manière qu'ils sont appliqués à des nombres décimaux. La raison pour laquelle nous ne pouvons pas effectuer une multiplication comme 0xC * 0xE dans nos têtes a plus à voir avec les tables de multiplication, nous avons appris à l'école que sur une éventuelle limitation dans le système de nombre.


» » » » Exprimant nombres binaires en C ++