En informática , un nibble [1] (a veces nybble , nyble o nybl para que coincida con la ortografía de byte ) es una agregación de cuatro bits , [1] [2] [3] o medio octeto . También se conoce como medio byte [4] o tetrade . [5] [6] En un contexto de redes o telecomunicaciones , el nibble a menudo se denomina semiocteto , [7] cuadribit , [8] o cuarteto . [9] [10] Un nibble tiene dieciséis ( 2 4 ) valores posibles. Un nibble se puede representar con un solo dígito hexadecimal ( – ) y se denomina dígito hexadecimal . [11]0
F
Un byte completo (octeto) se representa con dos dígitos hexadecimales ( 00
– FF
); por lo tanto, es común mostrar un byte de información como dos nibbles. A veces, el conjunto de todos los valores de 256 bytes se representa como una tabla de 16×16 , que proporciona códigos hexadecimales de fácil lectura para cada valor.
Las arquitecturas de ordenador de cuatro bits utilizan grupos de cuatro bits como unidad fundamental. Estas arquitecturas se utilizaron en los primeros microprocesadores , calculadoras de bolsillo y ordenadores de bolsillo . Siguen utilizándose en algunos microcontroladores . En este contexto, a los grupos de 4 bits a veces también se los denominaba caracteres [12] en lugar de nibbles. [1]
El término nibble se origina de su representación de "medio byte", siendo byte un homófono de la palabra inglesa bite . [4] En 2014, David B. Benson, profesor emérito de la Universidad Estatal de Washington , recordó que usó de manera lúdica (y posiblemente haya acuñado) el término nibble como "medio byte" y unidad de almacenamiento requerida para contener un dígito decimal codificado en binario (BCD) alrededor de 1958, cuando hablaba con un programador del Laboratorio Científico de Los Álamos . La ortografía alternativa nybble refleja la ortografía de byte , como se señaló en los editoriales de Kilobaud y Byte a principios de la década de 1980. Otro uso temprano registrado del término nybble fue en 1977 dentro del grupo de tecnología de banca de consumo en Citibank. Creó un estándar anterior a ISO 8583 para mensajes transaccionales entre cajeros automáticos y los centros de datos de Citibank que usaban la unidad de datos básica 'nabble'.
El término nibble se utiliza para describir la cantidad de memoria utilizada para almacenar un dígito de un número almacenado en formato decimal empaquetado (BCD) dentro de un mainframe IBM. Esta técnica se utiliza para acelerar los cálculos y facilitar la depuración. Un byte de 8 bits se divide por la mitad y cada nibble se utiliza para almacenar un dígito decimal. El último nibble (el más a la derecha) de la variable se reserva para el signo. Por lo tanto, una variable que puede almacenar hasta nueve dígitos se "comprimiría" en 5 bytes. La facilidad de depuración se debió a que los números se pueden leer en un volcado hexadecimal donde se utilizan dos números hexadecimales para representar el valor de un byte, como 16×16 = 2 8 . Por ejemplo, un valor BCD de cinco bytes 31
41
59
26
5C
representa un valor decimal de +314159265.
Históricamente, hay casos en los que se utilizó nybble para un grupo de bits mayor que 4. En el Apple II , gran parte del control de la unidad de disco y la grabación codificada por grupos se implementó en software. La escritura de datos en un disco se realizó convirtiendo páginas de 256 bytes en conjuntos de nibbles de 5 bits (más tarde, de 6 bits ) y la carga de datos del disco requería lo inverso. [13] [14] [15] Además, la documentación de 1982 para la Integrated Woz Machine se refiere consistentemente a un "nibble de 8 bits". [16] El término byte alguna vez tuvo la misma ambigüedad y significaba un conjunto de bits pero no necesariamente 8, de ahí la distinción de bytes y octetos o de nibbles y cuartetos (o quadbits ). Hoy, los términos byte y nibble casi siempre se refieren a colecciones de 8 y 4 bits respectivamente y muy raramente se usan para expresar otros tamaños.
Un nibble se puede representar en binario y hexadecimal de la siguiente manera:
Los términos nibble bajo y nibble alto se utilizan para denotar los nibbles que contienen, respectivamente, los bits menos significativos y los bits más significativos dentro de un byte. En las representaciones gráficas de bits dentro de un byte, el bit más a la izquierda podría representar el bit más significativo ( MSB ), correspondiente a la notación decimal ordinaria en la que el dígito a la izquierda de un número es el más significativo. En tales ilustraciones, los cuatro bits en el extremo izquierdo del byte forman el nibble alto y los cuatro bits restantes forman el nibble bajo. [17] Por ejemplo,
El nibble alto es 0110 2 ( 6 16 ), y el nibble bajo es 0001 2 ( 1 16 ). El valor total es nibble alto × 16 10 + nibble bajo ( 6 × 16 + 1 = 97 10 ).
Se puede extraer un nibble de un byte realizando una operación AND lógica bit a bit y, opcionalmente, un desplazamiento de bit dependiendo de si se va a extraer el nibble alto o bajo.
Cª :
#define HI_NIBBLE(b) (((b) >> 4) y 0x0F) #define LO_NIBBLE(b) ((b) y 0x0F)
donde b
debe ser una variable o constante de un tipo de datos integralb
, y solo se utiliza el byte menos significativo de .
Por ejemplo, HI_NIBBLE(0xAB)==0xA
y LO_NIBBLE(0xAB)==0xB
.
En Common Lisp :
( defun hi-nibble ( b ) ( ldb ( byte 4 4 ) b )) ( defun lo-nibble ( b ) ( ldb ( byte 4 0 ) b ))
[...] El campo característico de ocho bits a veces se denomina byte , un campo de cuatro bits puede denominarse nibble. [...]
Cada una de estas letras corresponde a uno de los números enteros del cero al quince, por lo que se requieren 4 bits (una "tetrada") en la representación binaria.
representa un cuarteto (4 bits) de datos binarios.
f) representa exactamente 4 bits.
[...]
Bit
: la unidad de información más pequeña que se puede representar. (Un bit puede estar en uno de dos estados: 0 o 1). [...]
Byte
: un grupo de 8 bits contiguos que ocupan una sola ubicación de memoria. [...]
Carácter
: un grupo de 4 bits de datos contiguos. [...](NB. Este manual de Intel 4004 utiliza el término carácter para referirse a entidades de datos de 4 bits en lugar de 8 bits . Intel pasó a utilizar el término más común "nibble" para entidades de 4 bits en su documentación para el procesador siguiente, el 4040 , ya en 1974.)