una texto tamaño son simbologia saber qué que para palabras palabra ocupa nibbles necesitan multiplos los letra kilobyte informatica hola historia escribir equivale entre ejemplo diferencia cómo cuántos cuanto computacion caracteristicas caracteres bytes memory assembly hardware

memory - texto - qué son los bytes



¿Cuál es la diferencia entre una palabra y un byte? (14)

¿Por qué no decir 8 bits?

Porque no todas las máquinas tienen bytes de 8 bits. Como etiquetó esta C , busque CHAR_BIT en limits.h .

He hecho un poco de investigación. Un byte es de 8 bits y una palabra es la unidad más pequeña que se puede direccionar en la memoria. La longitud exacta de una palabra varía. Lo que no entiendo es, ¿de qué sirve tener un byte? ¿Por qué no decir 8 bits?

Le pregunté a un profesional esta pregunta y él dijo que la mayoría de las máquinas en estos días son direccionables por bytes, pero ¿qué significaría eso?


La longitud exacta de una palabra varía. Lo que no entiendo es, ¿de qué sirve tener un byte? ¿Por qué no decir 8 bits?

Aunque la longitud de una palabra varía, en todas las máquinas modernas e incluso en todas las arquitecturas antiguas con las que estoy familiarizado, el tamaño de la palabra sigue siendo un múltiplo del tamaño del byte. Por lo tanto, no hay un inconveniente particular en el uso de "byte" sobre "8 bits" en relación con el tamaño de palabra variable.

Más allá de eso, aquí hay algunas razones para usar byte (u octeto 1 ) sobre "8 bits":

  1. Las unidades más grandes son convenientes para evitar números muy grandes o muy pequeños: es mejor que preguntes "por qué decir 3 nanosegundos cuando podrías decir 0,000000003 segundos" o "por qué decir 1 kilogramo cuando podrías decir 1,000 gramos", etc.
  2. Más allá de la comodidad, la unidad de un byte es de alguna manera tan fundamental como 1 bit ya que muchas operaciones normalmente no funcionan en el nivel byte, sino en el nivel byte: direccionamiento de memoria, asignación de almacenamiento dinámico, lectura de un archivo o socket, etc.
  3. Incluso si adoptara "8 bits" como un tipo de unidad, por lo que podría decir "dos 8 bits" en lugar de "dos bytes", a menudo sería muy confuso que su nueva unidad comience con un número. Por ejemplo, si alguien dice "cien 8 bits", podría interpretarse fácilmente como 108 bits, en lugar de 100 bits.

1 Aunque consideraré que un byte tiene 8 bits para esta respuesta, esto no es universalmente cierto: en máquinas más antiguas, un byte puede tener un tamaño diferente (como 6 bits . Octeto siempre significa 8 bits, independientemente de la máquina ( por lo que este término se usa a menudo para definir protocolos de red). En el uso moderno, el byte se usa abrumadoramente como sinónimo de 8 bits.


Lo que no entiendo es, ¿de qué sirve tener un byte? ¿Por qué no decir 8 bits?

Aparte del punto técnico de que un byte no es necesariamente de 8 bits, las razones para tener un término son simple naturaleza humana:

  • economía de esfuerzo (también conocida como pereza): es más fácil decir "byte" en lugar de "ocho bits"

  • tribalismo: a los grupos de personas les gusta utilizar la jerga / un lenguaje privado para diferenciarlos de los demás.

Sólo déjate llevar. No va a cambiar más de 50 años de terminología de TI acumulada y equipaje cultural quejándose de ello.

FWIW: el término correcto para usar cuando se quiere decir "8 bits independientes de la arquitectura del hardware" es "octeto".


Cualquiera que sea la terminología presente en las hojas de datos y compiladores, un ''Byte'' es de ocho bits. No intentemos confundir a los investigadores y las generalidades con las excepciones más oscuras, particularmente porque la palabra "Byte" proviene de la expresión "By Eight". He trabajado en la industria de semiconductores / electrónica durante más de treinta años y ni una sola vez conocida ''Byte'' solía expresar más de ocho bits.


De hecho, en el uso común, la palabra se ha convertido en sinónimo de 16 bits, al igual que byte tiene con 8 bits. Puede ser un poco confuso ya que el "tamaño de palabra" en una CPU de 32 bits es de 32 bits, pero cuando se habla de una palabra de datos, uno significa 16 bits. Los microcontroladores con un tamaño de palabra de 32 bits han llevado a llamar a sus instrucciones "longs" (supuestamente para tratar de evitar la confusión de palabra / doble palabra).


En este contexto, una palabra es la unidad que usa una máquina cuando trabaja con la memoria. Por ejemplo, en una máquina de 32 bits, la palabra tiene 32 bits de longitud y en 64 bits tiene 64 bits de longitud. El tamaño de palabra determina el espacio de direcciones.

En la programación (C / C ++), la palabra se representa típicamente por el tipo int_ptr , que tiene la misma longitud que un puntero, de esta manera se abstraen estos detalles.

Sin embargo, algunas API pueden confundirte, como la API de Win32, porque tiene tipos como WORD (16 bits) y DWORD (32 bits). La razón es que la API inicialmente se dirigía a máquinas de 16 bits, luego se transportaba a máquinas de 32 bits y luego a máquinas de 64 bits. Para almacenar un puntero, puede usar INT_PTR . Más detalles here y here .


Los términos de BYTE y WORD son relativos al tamaño del procesador al que se hace referencia. Los procesadores más comunes son / eran de 8 bits, 16 bits, 32 bits o 64 bits. Estas son las longitudes WORD del procesador. En realidad, la mitad de un WORD es un BYTE, cualquiera que sea la longitud numérica. Listo para esto, la mitad de un BYTE es un NIBBLE.


Parece que todas las respuestas asumen lenguajes de alto nivel y principalmente C / C ++.

Pero la pregunta está etiquetada como "ensamblado" y en todos los ensambladores que conozco (para CPU de 8 bits, 16 bits, 32 bits y 64 bits), las definiciones son mucho más claras:

byte = 8 bits word = 2 bytes dword = 4 bytes = 2Words (dword means "double word") qword = 8 bytes = 2Dwords = 4Words ("quadruple word")


Si una máquina es direccionable por bytes y una palabra es la unidad más pequeña que puede abordarse en la memoria, entonces supongo que una palabra sería un byte.


También es una buena forma de pensarlo. Por supuesto, depende de la arquitectura de la computadora.

bit = …1 bit… nybble = 4 bits = 1/2 byte byte = 8 bits = 2 nybbles WORD = 2 bytes = 4 nybbles = 16 bits DWORD = 2 WORDs = 4 bytes = 8 nybbles = 32 bits QWORD = 2 DWORDs = 4 WORDs = ... = 64 bits


Un grupo de 8 bits se denomina byte (con la excepción de que no lo es :) para ciertas arquitecturas)

Una palabra es un grupo de bits de tamaño fijo que el conjunto de instrucciones y / o el hardware del procesador manejan como una unidad. Eso significa que el tamaño de un registro de propósito general (que generalmente es más que un byte) es una palabra

En la C, una palabra se llama a menudo entero => int


Una palabra es el tamaño de los registros en el procesador. Esto significa que las instrucciones del procesador como, agregar, mul, etc. están en entradas de tamaño de palabra.

Pero la mayoría de las arquitecturas modernas tienen memoria que es direccionable en trozos de 8 bits, por lo que es conveniente usar la palabra "byte".


BYTE

Estoy tratando de responder esta pregunta desde la perspectiva de C ++.

El estándar de C ++ define ''byte'' como "unidad direccionable de datos lo suficientemente grande como para contener cualquier miembro del conjunto de caracteres básicos del entorno de ejecución".

Lo que esto significa es que el byte consiste en al menos suficientes bits adyacentes para acomodar el conjunto de caracteres básicos para la implementación. Es decir, el número de valores posibles debe ser igual o superior al número de caracteres distintos. En los Estados Unidos, los juegos de caracteres básicos son generalmente los conjuntos ASCII y EBCDIC, cada uno de los cuales puede acomodarse en 8 bits. Por lo tanto, se garantiza que un byte tendrá al menos 8 bits.

En otras palabras, un byte es la cantidad de memoria requerida para almacenar un solo carácter.

Si desea verificar el ''número de bits'' en su implementación C ++, verifique el archivo ''limits.h''. Debería tener una entrada como a continuación.

#define CHAR_BIT 8 /* number of bits in a char */

PALABRA

Un Word se define como el número específico de bits que la máquina / sistema puede procesar juntos (es decir, en un intento). Alternativamente, podemos decir que Word define la cantidad de datos que se pueden transferir entre la CPU y la RAM en una sola operación.

Los registros de hardware en una computadora son de tamaño de palabra. El tamaño de Word también define la dirección de memoria más grande posible (cada dirección de memoria apunta a una memoria de tamaño de byte).

Nota: en los programas C ++, la dirección de direcciones apunta a un byte de memoria y no a una palabra.


Byte : Hoy, un byte es casi siempre de 8 bits. Sin embargo, ese no fue siempre el caso y no hay un "estándar" o algo que dicte esto. Como 8 bits es un número conveniente para trabajar, se convirtió en el estándar de facto.

Palabra : el tamaño natural con el que un procesador maneja los datos (el tamaño del registro). Los tamaños de palabras más comunes encontrados en la actualidad son 8, 16, 32 y 64 bits, pero son posibles otros tamaños. Por ejemplo, había algunas máquinas de 36 bits , o incluso máquinas de 12 bits .

El byte es la unidad direccionable más pequeña para una CPU. Si desea establecer / borrar bits individuales, primero debe recuperar el byte correspondiente de la memoria, mezclar los bits y luego volver a escribir el byte en la memoria.

La palabra en contraste es la mayor cantidad de bits con los que un procesador puede procesar (como sumar y restar) a la vez. Esa definición es un poco confusa, ya que algunos procesadores pueden tener diferentes tamaños de palabras para diferentes tareas (por ejemplo, el procesamiento entero vs. punto flotante). El tamaño de palabra es con lo que trabaja la mayoría de las operaciones.

También hay algunos procesadores que tienen un tamaño de puntero diferente: por ejemplo, el 8086 es un procesador de 16 bits, lo que significa que sus registros son de 16 bits de ancho. Pero sus punteros (direcciones) tienen 20 bits de ancho y se calcularon combinando dos registros de 16 bits de cierta manera.