unidades terabyte que multiplos memoria medidas medida informatica bytes almacenamiento c++

terabyte - ¿Cuál es la diferencia en la definición del ''byte'' en términos de memoria de computadora y en términos de C++?



que es un byte en informatica (3)

Un byte significa una unidad de memoria de 8 bits.

Eso es incorrecto.

Sin embargo, C ++ define el byte de manera diferente.

Eso también es incorrecto.

Tanto en la terminología de C ++ como en el lenguaje general, un byte es la unidad mínima de memoria. Un byte de 8 bits se conoce como un octeto .

¿Puede explicar si un compilador de C ++ tiene un byte de 16 bits, mientras que el sistema tiene un byte de 8 bits, entonces, cómo se ejecutará el programa en dicho sistema?

No lo hará Si compila un programa para una arquitectura cuyos bytes son de 16 bits, no se ejecutará en una computadora con una arquitectura cuyos bytes sean de 8 bits.

Tienes que compilar para el procesador que estás usando.

Esto es con referencia al texto de C ++ Primer Plus por Stephen Prata-

Un byte significa una unidad de memoria de 8 bits en el sentido de unidad de medida que describe la cantidad de memoria en una computadora. Sin embargo, C ++ define el byte de manera diferente. El byte C ++ consta de al menos suficientes bits adyacentes para alojar el conjunto de caracteres básico para la implementación.

¿Puede explicar si un compilador de C ++ tiene un byte de 16 bits, mientras que el sistema tiene un byte de 8 bits, entonces, cómo se ejecutará el programa en dicho sistema?


Lo que el autor quiere decir sobre el tamaño de un byte es eso, citando de Wikipedia :

La popularidad de las principales arquitecturas de computación comercial ha contribuido a la aceptación ubicua del tamaño de 8 bits.

Por otro lado, la unidad de memoria en C ++ viene dada por el tipo incorporado char ; bajo alguna implementación, un char puede no ser una porción de memoria de 8 bits; sin embargo, en su programa C ++, cada sizeof(T) se expresará en múltiplos de sizeof(char) , que es igual a 1 por definición.

El número de bits en un byte para una implementación en particular se registra en la macro CHAR_BIT , definida dentro del encabezado estándar <climits> . Se garantiza que el char es de al menos 8 bits.

Finalmente, esta es la definición de byte dada por el Estándar de C ++ (§1.7, intro.memory ):

La unidad de almacenamiento fundamental en el modelo de memoria C ++ es el byte . Un byte es al menos lo suficientemente grande para contener cualquier miembro del conjunto de caracteres de ejecución básico (2.3) y las unidades de código de ocho bits de la forma de codificación Unicode UTF-8 y está compuesto por una secuencia contigua de bits, cuyo número es Implementación definida. El bit menos significativo se llama el bit de orden inferior ; El bit más significativo se llama el bit de orden superior . La memoria disponible para un programa C ++ consta de una o más secuencias de bytes contiguos. Cada byte tiene una dirección única.


Solía ​​haber máquinas que tenían un tamaño de byte variable o un tamaño de byte menor que 8. La especificación lo deja abierto a la implementación en el hardware dado.

El DEC PDP-10 tenía un tamaño de palabra de 36 bits, y podría especificar el tamaño de un byte (generalmente 5 bytes de 7 bits a la palabra ...)

http://pdp10.nocrew.org/docs/instruction-set/Byte.html