107 votes

Quelle est la différence entre un mot et un octet ?

J'ai fait quelques recherches. Un octet est constitué de 8 bits et un mot est la plus petite unité qui peut être adressée en mémoire. La longueur exacte d'un mot varie. Ce que je ne comprends pas, c'est l'intérêt d'avoir un octet. Pourquoi ne pas dire 8 bits ?

J'ai posé cette question à un professeur et il m'a répondu que la plupart des machines actuelles sont adressables par octet, mais qu'est-ce que cela fait d'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.

192voto

DarkDust Points 47584

Octet : Aujourd'hui, un octet est presque toujours de 8 bits. Cependant, ce n'a pas toujours été le cas et il n'y a pas de "norme" ou autre qui le dicte. Comme 8 bits est un nombre pratique pour travailler, il est devenu la norme de facto.

Word : Le site la taille naturelle avec laquelle un processeur traite les données (la taille du registre). Les tailles de mot les plus courantes rencontrées aujourd'hui sont 8, 16, 32 et 64 bits, mais d'autres tailles sont possibles. Par exemple, il existait quelques Machines à 36 bits ou encore Machines 12 bits .

Le site octet est la plus petite unité adressable pour un CPU. Si vous souhaitez définir/effacer des bits individuels, vous devez d'abord récupérer l'octet correspondant dans la mémoire, modifier les bits, puis réécrire l'octet dans la mémoire.

Le site mot Par contraste, le mot est le plus grand nombre de bits avec lequel un processeur peut effectuer un traitement (comme l'addition et la soustraction) à la fois. Cette définition est un peu floue, car certains processeurs peuvent avoir des tailles de mots différentes pour des tâches différentes (traitement en nombres entiers ou en virgule flottante, par exemple). La taille du mot est ce que le majorité d'opérations travaillent avec.

Il y a également quelques processeurs qui ont une autre pointeur la taille : par exemple, le 8086 est un processeur 16 bits, ce qui signifie que ses registres ont une largeur de 16 bits. Mais ses pointeurs (adresses) ont une largeur de 20 bits et ont été calculés en combinant deux registres de 16 bits d'une certaine manière.

9 votes

Excellente réponse. Je n'ai qu'une objection à propos de " [Le mot, en revanche, est la plus grande quantité de bits avec laquelle un processeur peut effectuer un traitement ... à la fois. ". Il s'agit en fait de la le plus commun paquet de bits etc. De nombreuses architectures qui ont évolué au fil du temps ont une taille de mot qui n'est pas la plus large, mais elles sont souvent limitées dans ce qu'elles peuvent faire avec leurs valeurs les plus larges.

13 votes

Pour le crédit supplémentaire, un "nibble" est un terme courant pour la moitié d'un octet. Il est apparu au début de l'ère des processeurs de micro-ordinateurs ( par exemple le Intel 8080), et a toujours été compris comme étant de 4 bits, parce qu'à cette époque, l'octet était passé à 8 bits.

7 votes

Aujourd'hui, un octet de 8 bits est une norme ; voir CEI 80000-13:2008.

16voto

Stephen C Points 255558

Ce que je ne comprends pas, c'est à quoi ça sert d'avoir un octet ? Pourquoi ne pas dire 8 bits ?

Outre le fait qu'un octet n'est pas nécessairement constitué de 8 bits, la raison d'être de ce terme est la simple nature humaine :

  • l'économie de l'effort (alias la paresse) - il est plus facile de dire "octet" plutôt que "huit bits".

  • tribalisme - les groupes de personnes aiment utiliser un jargon / un langage privé pour se distinguer des autres.

Suivez le courant. Ce n'est pas en vous plaignant que vous changerez plus de 50 ans de terminologie informatique et de bagage culturel accumulés.


Pour information, le terme correct à utiliser lorsque vous voulez dire "8 bits indépendants de l'architecture matérielle" est "octet".

0 votes

Je pensais que l'octet était juste la traduction française de l'octet, merci ;)

9voto

Vaibhav Patle Points 351

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.

6voto

cnicutar Points 98451

Pourquoi ne pas dire 8 bits ?

Parce que toutes les machines ne disposent pas d'octets de 8 bits. Puisque vous avez marqué ce C , regardez CHAR_BIT sur limits.h .

6voto

VoidStar Points 1224

Un mot est la taille des registres du processeur. Cela signifie que les instructions du processeur comme add, mul, etc. sont sur des entrées de la taille d'un mot.

Mais la plupart des architectures modernes ont une mémoire qui est adressable par tranches de 8 bits, il est donc plus pratique d'utiliser le mot "octet".

0 votes

Donc, dans un sens, le terme "octet" est juste utilisé par commodité ?

0 votes

Oui, "octet" était particulièrement pratique lorsque le terme a été inventé. Comme beaucoup de conventions, une fois qu'elles sont établies, elles persistent. Je ne suis pas sûr que la terminologie basée sur les octets rende les ordinateurs plus faciles à comprendre dans leur ensemble, mais c'est la convention dominante et elle n'est pas prête de changer.

0 votes

L'octet est le terme utilisé pour désigner une unité qui était utilisée comme un caractère dans un texte. Historiquement, il existait des octets de 6 à 9 bits.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X