BYTE
J'essaie de répondre à cette question du point de vue du C++.
La norme C++ définit l'octet comme une "unité de données adressable suffisamment grande pour contenir tout membre du jeu de caractères de base de l'environnement d'exécution".
Cela signifie que l'octet est constitué d'au moins un nombre suffisant de bits adjacents pour accueillir le jeu de caractères de base de l'implémentation. Autrement dit, le nombre de valeurs possibles doit être égal ou supérieur au nombre de caractères distincts. Aux États-Unis, les jeux de caractères de base sont généralement les jeux ASCII et EBCDIC, qui peuvent chacun être accommodés par 8 bits. Il est donc garanti qu'un octet comporte au moins 8 bits.
En d'autres termes, un octet est la quantité de mémoire nécessaire pour stocker un seul caractère.
Si vous voulez vérifier le "nombre de bits" dans votre implémentation C++, vérifiez le fichier "limits.h". Il devrait contenir une entrée comme ci-dessous.
#define CHAR_BIT 8 /* number of bits in a char */
MOTS
Un mot est défini comme un nombre spécifique de bits qui peuvent être traités ensemble (c'est-à-dire en une seule tentative) par la machine/le système. On peut également dire que le mot définit la quantité de données qui peut être transférée entre le CPU et la RAM en une seule opération.
Les registres matériels d'une machine informatique sont de la taille d'un mot. La taille du mot définit également la plus grande adresse mémoire possible (chaque adresse mémoire pointe vers une mémoire de la taille d'un octet).
Note - Dans les programmes C++, les adresses mémoire pointent vers un octet de mémoire et non vers un mot.
14 votes
Il est préférable d'éviter le terme "mot" en raison de son ambiguïté. Ou bien il faut préciser en disant mot de 16 bits, mot de 32 bits, ...
2 votes
Est-il avantageux qu'un mot soit plus grand ou plus petit ?
2 votes
Un mot plus grand permet d'avoir des pointeurs plus grands (c'est-à-dire plus de RAM) et de traiter rapidement des nombres plus importants. Il peut également permettre à certaines opérations comme memset d'être plus rapides, en travaillant dans des blocs plus grands. Cependant, les processeurs avec un mot plus grand nécessitent plus de transistors dans le processeur et peuvent consommer un peu plus d'énergie.
0 votes
@VoidStar et un mot plus grand signifierait un espace d'adresse plus petit, ou je suis confus ?
2 votes
Pour répondre à la question "quel est l'intérêt d'avoir un octet", c'est une question d'histoire. Au départ, les processeurs n'étaient pas capables de gérer quelque chose de plus grand qu'un "octet" (les processeurs antérieurs ne géraient que des nybbles (4 bits), mais le terme n'a jamais vraiment été adopté). Le premier processeur de quelque importance était le 8086/8088 d'Intel. Il a été conçu pour traiter des instructions construites autour des "octets", c'est aussi pourquoi nous nous référons toujours à la mémoire en termes de xOctets, par exemple GigaOctets, car l'unité de base de la mémoire adressable était l'octet. K est une référence aux KiloBytes dont les premiers PC disposaient de 16, extensibles à 64 - woo hoo !