En informática , un nibble [1] (ocasionalmente nybble o nyble para que coincida con la ortografía del byte ) es una agregación de cuatro bits , [1] [2] [3] o medio octeto . También se conoce como medio byte [4] o tétrada . [5] [6] En una creación de redes o de telecomunicaciones contexto, el nibble menudo se llama un semi-octeto , [7] quadbit , [8] o cuarteto . [9][10] Un nibble tiene dieciséis (2 4 ) valores posibles. Un nibble puede estar representado por un solo dígito hexadecimal y llamado dígito hexadecimal . [11]
Un byte completo (octeto) está representado por dos dígitos hexadecimales; por lo tanto, es común mostrar un byte de información como dos nibbles. A veces, el conjunto de los valores de 256 bytes se representa como una tabla de 16 × 16, que proporciona códigos hexadecimales fácilmente legibles para cada valor.
Las arquitecturas de computadora de cuatro bits utilizan grupos de cuatro bits como su unidad fundamental. Estas arquitecturas se utilizaron en los primeros microprocesadores , calculadoras de bolsillo y computadoras de bolsillo . Siguen utilizándose en algunos microcontroladores . En este contexto, los grupos de 4 bits a veces también se denominaban caracteres [12] en lugar de nibbles. [1]
Historia
El término 'nibble' se origina en su representación de 'medio byte', con '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ó juguetonamente (y posiblemente acuñó) el término nibble como "medio byte" y la unidad de almacenamiento requerida para contener un binario. Dígito decimal codificado (BCD) alrededor de 1958, cuando hablaba con un programador del Laboratorio Científico de Los Alamos . La ortografía alternativa 'nybble' refleja la ortografía de 'byte', como se señaló en editoriales de Kilobaud y Byte a principios de la década de 1980. Otro uso registrado temprano del término 'nybble' fue en 1977 dentro del grupo de tecnología de banca de consumo en Citibank. Creó un estándar previo a ISO 8583 para mensajes transaccionales entre cajeros automáticos y los centros de datos de Citibank que utilizaban la unidad de información básica 'NABBLE'.
El 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 agilizar 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 (más a la derecha) de la variable está reservado para el signo. Por lo tanto, una variable que puede almacenar hasta nueve dígitos se "empaqueta" en 5 bytes. La facilidad de depuración se debe 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 de 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 superior a 4. En la línea de microcomputadoras Apple II , gran parte del control de la unidad de disco y la grabación codificada en grupo se implementaron en software. La escritura de datos en un disco se realizó mediante la conversión de páginas de 256 bytes en conjuntos de nibbles de 5 bits (más tarde, 6 bits ) y la carga de datos del disco requirió lo contrario. [13] [14] [15] Además, la documentación de 1982 para Integrated Woz Machine se refiere consistentemente a un "nibble de 8 bits". [16] El término byte tuvo una vez 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 en día, los términos 'byte' y 'nibble' casi siempre se refieren a colecciones de 8 y 4 bits, respectivamente, y rara vez se utilizan para expresar otros tamaños.
Mesa de bocadillos
Los dieciséis nibbles y sus equivalentes en otros sistemas numéricos:
Binario | Hexadecimal |
---|---|
0000 0100 0010 | 0 4 2 |
0010 1010 1001 | 2 A 9 |
0010 0000 1001 | 2 0 9 |
1110 0100 1001 | E 4 9 |
0011 1001 0110 | 3 9 6 |
0001 0000 0001 | 1 0 1 |
0011 0101 0100 | 3 5 4 |
0001 0110 0100 | 1 6 4 |
0 hexadecimal | = | 0 dic | = | 0 oct | 0 | 0 | 0 | 0 | |||
1 hexadecimal | = | 1 dic | = | 1 de oct | 0 | 0 | 0 | 1 | |||
2 hexadecimales | = | 2 dic | = | 2 de oct | 0 | 0 | 1 | 0 | |||
3 hexadecimales | = | 3 dic | = | 3 de oct | 0 | 0 | 1 | 1 | |||
4 hexadecimales | = | 4 dic | = | 4 de oct | 0 | 1 | 0 | 0 | |||
5 hexadecimales | = | 5 dic | = | 5 de oct | 0 | 1 | 0 | 1 | |||
6 hexadecimales | = | 6 dic | = | 6 de oct | 0 | 1 | 1 | 0 | |||
7 hexadecimales | = | 7 dic | = | 7 de oct | 0 | 1 | 1 | 1 | |||
8 hexadecimales | = | 8 dic | = | 10 de oct | 1 | 0 | 0 | 0 | |||
9 hexadecimales | = | 9 dic | = | 11 de oct | 1 | 0 | 0 | 1 | |||
Un maleficio | = | 10 dic | = | 12 de oct | 1 | 0 | 1 | 0 | |||
B hex | = | 11 dic | = | 13 de oct | 1 | 0 | 1 | 1 | |||
C hex | = | 12 dic | = | 14 de oct | 1 | 1 | 0 | 0 | |||
D hex | = | 13 dic | = | 15 de oct | 1 | 1 | 0 | 1 | |||
E hex | = | 14 dic | = | 16 de oct | 1 | 1 | 1 | 0 | |||
F hexadecimal | = | 15 dic | = | 17 de oct | 1 | 1 | 1 | 1 | |||
Mordiscos bajos y altos
Los términos "nibble bajo" y "nibble alto" se utilizan para indicar los nibbles que contienen, respectivamente, los bits menos significativos y los bits más significativos dentro de un byte. En 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,
noventa y siete = 97 10 = (0110 0001) 2 = 61 hexadecimal
el nibble alto es 0110 2 (6 hexadecimales ) y el nibble bajo es 0001 2 (1 hexadecimal ). El valor total es nibble alto × 16 10 + nibble bajo (6 × 16 + 1 = 97 10 ).
Extrayendo un nibble de un byte
Se puede extraer un nibble de un byte haciendo una operación AND lógica bit a bit y, opcionalmente, un cambio de bit dependiendo de si se va a extraer el nibble alto o bajo.
En C :
#define HI_NIBBLE (b) (((b) >> 4) & 0x0F) #define LO_NIBBLE (b) ((b) & 0x0F)
donde b
debe ser una variable o constante de un tipo de datos integral , y solo b
se usa 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 ))
Ver también
- Sistema de numeración binaria
- Sílaba (informática)
- Palabra
Referencias
- ^ a b c Rafael, Howard A., ed. (Noviembre de 1974). "Las funciones de una computadora: registro de instrucciones y decodificador" (PDF) . Manual del usuario del MCS-40 para diseñadores lógicos . Santa Clara, California, Estados Unidos: Intel Corporation . pag. viii. Archivado (PDF) desde el original el 3 de marzo de 2020 . Consultado el 3 de marzo de 2020 .
[...] El campo característico de ocho bits a veces se denomina byte , un campo de cuatro bits puede denominarse nibble. [...]
- ^ Hall, Douglas V. (1980). Microprocesadores y sistemas digitales . McGraw-Hill . ISBN 0-07-025571-7.
- ^ Warren Jr., Henry S. (2013) [2002]. Hacker's Delight (2 ed.). Addison Wesley - Pearson Education, Inc. ISBN 978-0-321-84268-8. 0-321-84268-5.
- ^ a b Raymond, Eric S. (1996). El diccionario del nuevo hacker . Prensa del MIT . pag. 333. ISBN 978-0-262-68092-9.
- ^ Carr, John W.Introducción al uso de computadoras digitales: notas de la conferencia de verano celebrada en el Centro de Computación de la Universidad de Carolina del Norte, Chapel Hill, Carolina del Norte, del 17 al 28 de agosto de 1959 . Investigación de frontera en computadoras digitales. 1 . Universidad de Carolina del Norte en Chapel Hill, Centro de Computación. pag. 211.
Cada una de estas letras corresponde a uno de los números enteros de cero a quince, por lo que requiere 4 bits (una "tétrada") en representación binaria.
- ^ Speiser, Ambrosius Paul (1965) [1961]. Digitale Rechenanlagen - Grundlagen / Schaltungstechnik / Arbeitsweise / Betriebssicherheit [ Ordenadores digitales - Conceptos básicos / Circuitos / Funcionamiento / Fiabilidad ] (en alemán) (2 ed.). ETH Zürich , Zürich, Suiza: Springer-Verlag / IBM . págs. 6, 34, 165, 183, 208, 213, 215. LCCN 65-14624 . 0978.
- ^ Puzman, Josef; Kubin, Boris (2012). Redes públicas de datos: desde PDN independientes hasta ISDN . Springer Science + Business Media . pag. 113. ISBN 978-1-4471-1737-7.
- ^ Horak, Ray (2007). Diccionario Webster's New World Telecom . John Wiley e hijos . pag. 402. ISBN 978-0-470-22571-4.
- ^ Brewster, Ronald L. (1994). Redes y comunicaciones de datos, vol. III . Serie de telecomunicaciones IEE. 31 . Institución de Ingenieros Eléctricos . pag. 155. ISBN 978-0-85296-804-8.
Un símbolo de datos representa un cuarteto (4 bits) de datos binarios.
- ^ Courbis, Paul ; Lalande, Sébastien (27 de junio de 2006) [1989]. Voyage au centre de la HP28c / s (en francés) (2 ed.). París, Francia: Editions de la Règle à Calcul. OCLC 636072913 . Archivado desde el original el 6 de agosto de 2016 . Consultado el 6 de septiembre de 2015 . [1] [2] [3] [4] [5] [6]
- ^ Heller, Steve (1997). Introducción a C ++ . Morgan Kaufmann . pag. 27. ISBN 978-0-12-339099-8.
Cada dígito hexadecimal (0 – f) representa exactamente 4 bits.
- ^ "Términos y abreviaturas" (PDF) . Manual de programación en lenguaje ensamblador MCS-4: Manual de programación del sistema de microcomputadoras INTELLEC 4 (edición preliminar). Santa Clara, California, Estados Unidos: Intel Corporation . Diciembre de 1973. págs. V, 2-6. MCS-030-1273-1. Archivado (PDF) desde el original el 1 de marzo de 2020 . Consultado el 2 de marzo de 2020 .
[...] Bit - La unidad más pequeña de información que se puede representar. (Un bit puede estar en uno de dos estados I 0 o 1). [...] Byte - Un grupo de 8 bits contiguos que ocupan una única ubicación de memoria. [...] Carácter - Un grupo de 4 bits contiguos de datos. [...]
(NB. Este manual de Intel 4004 usa el término carácter que se refiere a entidades de datos de 4 bits en lugar de 8 bits . Intel cambió para usar el término más común nibble para entidades de 4 bits en su documentación para el procesador sucesivo 4040 ya en 1974. ) - ^ Worth, Don D .; Lechner, Pieter M. (mayo de 1982) [1981]. Debajo de Apple DOS (4ª impresión, 1ª ed.). Reseda, California, EE.UU .: Software de calidad . Consultado el 21 de marzo de 2017 . [7] [8] [9] Archivado el 9 de marzo de 2016 en la Wayback Machine.
- ^ Worth, Don D .; Lechner, Pieter M. (marzo de 1985) [1984]. Debajo de Apple ProDOS: para usuarios de computadoras Apple II Plus, Apple IIe y Apple IIc (PDF) (segunda impresión, primera edición). Chatsworth, California, Estados Unidos: Software de calidad . ISBN 0-912985-05-4. LCCN 84-61383 . Archivado (PDF) desde el original el 21 de marzo de 2017 . Consultado el 21 de marzo de 2017 . [10]
- ^ Copy II Plus Versión 9 - Utilidades ProDOS / DOS - Recuperación de datos, administración de archivos, respaldo de software protegido (PDF) . 9.0. Central Point Software, Inc. 31 de octubre de 1989 [1982]. Archivado desde el original (PDF) el 7 de mayo de 2017 . Consultado el 21 de marzo de 2017 .
- ^ Apple Computer, Inc. (febrero de 1982) [1978]. Especificación de Integrated Woz Machine (IWM) (PDF) (19 ed.). Museo de la Computación DigiBarn. Archivado (PDF) desde el original el 6 de agosto de 2016 . Consultado el 6 de agosto de 2016 .
- ^ Baccala, Brent (abril de 1997). "Aritmética binaria" . Conectado: una enciclopedia de Internet (3ª ed.). Archivado desde el original el 6 de agosto de 2016 . Consultado el 20 de julio de 2015 .
enlaces externos
- "Línea de montaje de Apple" . Mayo de 1981.