Numeración de bits - Bit numbering

En informática , la numeración de bits es la convención utilizada para identificar las posiciones de los bits en un número binario o un contenedor de dicho valor. El número de bit comienza con cero y se incrementa en uno para cada posición de bit subsiguiente.

Poco menos significativo

La representación binaria del decimal 149, con el LSB resaltado. El MSB en un número binario de 8 bits representa un valor de 128 decimal. El LSB representa un valor de 1.

En informática , el bit menos significativo ( LSB ) es la posición del bit en un entero binario que da el valor de las unidades, es decir, determina si el número es par o impar. El LSB se refiere a veces como el bit de orden inferior o más a la derecha poco , debido a la convención en la notación posicional de escribir los dígitos menos significativos más a la derecha. Es análogo al dígito menos significativo de un entero decimal , que es el dígito en la posición de las unidades (más a la derecha).

Es común asignar a cada bit un número de posición, que va de cero a N-1, donde N es el número de bits en la representación binaria utilizada. Normalmente, el número de bit es simplemente el exponente para el peso bit correspondiente en base 2 (tal como en 2 31 ..2 0 ). Algunos fabricantes de CPU han asignado números de bits al revés (que no es lo mismo que diferentes endianidades ). En cualquier caso, el bit menos significativo en sí mismo permanece inequívoco como bit unitario.

Los bits menos significativos (plural) son los bits del número más cercano e incluido el LSB. Los bits menos significativos tienen la útil propiedad de cambiar rápidamente si el número cambia aunque sea levemente. Por ejemplo, si 1 (binario 00000001) se suma a 3 (binario 00000011), el resultado será 4 (binario 00000100) y tres de los bits menos significativos cambiarán (011 a 100). Por el contrario, los tres bits más significativos (MSB) permanecen sin cambios (000 a 000). Debido a esta volatilidad, los bits menos significativos se emplean con frecuencia en generadores de números pseudoaleatorios , herramientas esteganográficas , funciones hash y sumas de comprobación .

El bit menos significativo en la esteganografía digital

Un diagrama que muestra cómo manipular las partes menos significativas de un color puede tener un efecto muy sutil y generalmente imperceptible en el color.  En este diagrama, el verde está representado por su valor RGB, tanto en decimal como en binario.  El cuadro rojo que rodea los dos últimos bits ilustra los bits menos significativos cambiados en la representación binaria.

En la esteganografía digital , los mensajes sensibles pueden ocultarse manipulando y almacenando información en los bits menos significativos de una imagen o un archivo de sonido. Posteriormente, el usuario puede recuperar esta información extrayendo los bits menos significativos de los píxeles manipulados para recuperar el mensaje original. Esto permite que el almacenamiento o la transferencia de información digital permanezcan ocultos.

Byte menos significativo

LSB también puede representar el byte menos significativo . El significado es paralelo al de los bits: es el byte de un número multibyte el que tiene el menor valor potencial.

Parte más significante

La representación binaria sin signo del decimal 149, con el MSB resaltado. El MSB en un número binario sin signo de 8 bits representa un valor de 128 decimal. El LSB representa un valor de 1.

En informática , el bit más significativo ( MSB ) es la posición del bit en un número binario que tiene el mayor valor. El MSB se refiere a veces como el bit de orden superior o poco más a la izquierda debido a la convención en la notación posicional de escribir los dígitos más significativos más a la izquierda.

El bit de signo es el MSB en un número binario con signo . En la notación de complemento a uno y dos , "1" significa un número negativo y "0" significa un número positivo.

Es común asignar a cada bit un número de posición que va de cero a N − 1, donde N es el número de bits en la representación binaria utilizada. Normalmente, el número de bit asignado es simplemente el exponente del peso de bit correspondiente en base 2 (como en ). Algunos fabricantes de CPU asignan números de bits de manera diferente. Independientemente de la numeración, el MSB sigue siendo el bit más significativo. 231..20

Byte más significativo

MSB también puede representar el byte más significativo . El significado de los bytes es paralelo al de los bits: es el byte de un número multibyte el que tiene el mayor valor potencial.

Para evitar la ambigüedad entre bit y byte, a menudo se utilizan los términos menos abreviados MSbit o MSbyte .

Ejemplo de entero sin signo

Esta tabla ilustra un ejemplo de valor decimal de 149 y la ubicación de LSB. En este ejemplo particular, la posición del valor unitario (decimal 1 o 0) se encuentra en la posición de bit 0 (n = 0). MSB significa bit más significativo , mientras que LSB significa bit menos significativo .

Binario (decimal: 149) 1 0 0 1 0 1 0 1
Peso de bit para la posición de bit dada n (2 n ) 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0
Etiqueta de posición de bit MSB LSB

La posición del LSB es independiente del orden en que se transmiten o almacenan los bits, que es un tema de endianidad .

El bit más significativo frente al menos significativo primero

Las expresiones bit más significativo primero y bit menos significativo al final son indicaciones sobre el orden de la secuencia de los bits en los bytes enviados a través de un cable en un protocolo de transmisión en serie o en un flujo (por ejemplo, un flujo de audio).

El bit más significativo primero significa que el bit más significativo llegará primero: por lo tanto, por ejemplo, el número hexadecimal 0x12, 00010010en representación binaria, llegará como la secuencia 0 0 0 1 0 0 1 0.

El bit menos significativo primero significa que el bit menos significativo llegará primero: por lo tanto, por ejemplo, el mismo número hexadecimal 0x12, nuevamente 00010010en representación binaria, llegará como la secuencia (invertida) 0 1 0 0 1 0 0 0.

Numeración de bits LSB 0

LSB 0: un contenedor para un número binario de 8 bits con el bit menos significativo resaltado asignado el número de bit 0

Cuando la numeración de bits comienza en cero para el bit menos significativo (LSB), el esquema de numeración se denomina "LSB 0". Este método de numeración de bits tiene la ventaja de que para cualquier número sin signo, el valor del número se puede calcular mediante exponenciación con el número de bit y una base de 2. Por lo tanto, el valor de un entero binario sin signo es

donde b i denota el valor del bit con el número i , y N denota el número de bits en total.

Numeración MSB de 0 bits

MSB 0: un contenedor para un número binario de 8 bits con el bit más significativo resaltado asignado el número de bit 0

De manera similar, cuando la numeración de bits comienza en cero para el bit más significativo (MSB), el esquema de numeración se denomina "MSB 0".

Por tanto, el valor de un entero binario sin signo es

Otro

El operador elem de ALGOL 68 es efectivamente "numeración de bits MSB 1", ya que los bits se numeran de izquierda a derecha, siendo el primer bit (bits elem 1) el "bit más significativo", y la expresión (bits elem bits de ancho) dando el "bit menos significativo". De manera similar, cuando los bits son coaccionados (encasillados) a una matriz de booleanos ([] bits bool ), el primer elemento de esta matriz (bits [ lwb bits]) es nuevamente el "bit más significativo".

Para la numeración MSB 1, el valor de un entero binario sin signo es

PL / I numera las cadenas de BIT que comienzan con 1 para el bit más a la izquierda.

La función Fortran BTEST utiliza la numeración LSB 0.

Uso

Las CPUs Little-endian generalmente emplean numeración de bits "LSB 0", sin embargo, ambas convenciones de numeración de bits se pueden ver en máquinas big-endian . Algunas arquitecturas como SPARC y Motorola 68000 usan numeración de bits "LSB 0", mientras que S / 390 , PowerPC y PA-RISC usan "MSB 0".

El estilo recomendado para los documentos de solicitud de comentarios (RfC) es la numeración de bits "MSB 0".

La numeración de bits suele ser transparente para el software , pero algunos lenguajes de programación como Ada y los lenguajes de descripción de hardware como VHDL y verilog permiten especificar el orden de bits apropiado para la representación del tipo de datos.

Ver también

Referencias

enlaces externos