Operaciones de Bits

 
 




Entrada
Resultado

Aquí puede evaluar expresiones formadas mediante operadores bit a bit para la manipulación de bits (de C++, Java y JavaScript).
Los números utilizados se almacenan y muestran en base a 2 bytes o 16 bits.
El resultado siempre se muestra en decimal, hexadecimal (0x...) y binario (0b...).
Por lo tanto, el programa también puede utilizarse simplemente como un conversor de números.
Un dígito hexadecimal representa un grupo de cuatro dígitos binarios (nibbles).
En la salida, estos grupos de cuatro dígitos binarios adyacentes se muestran alternativamente en rojo y negro.

Los operadores permitidos son (prioridad de operador en orden descendente):
˜ negar bit a bit
<<, >> desplazarse hacia la izquierda o hacia la derecha
& bit a bit y
^exclusivo bit a bit o
|bit a bit o

Se aceptan los siguientes literales numéricos como entrada:
Números decimales como 474,
Números binarios como 0b111011010,
Números hexadecimales como 0x1da.

En representación hexadecimal, hay 16 dígitos o nibbles diferentes,
cuya asignación de bits se muestra a continuación:

dechexbin
00x0 0000
10x1 0001
20x2 0010
30x3 0011
40x4 0100
50x5 0101
60x6 0110
70x7 0111
80x8 1000
90x9 1001
100xa 1010
110xb 1011
120xc 1100
130xd 1101
140xe 1110
150xf 1111

Ejemplos de aplicación

Los bits se utilizan frecuentemente para almacenar información simple de forma compacta.
Las operaciones con bits permiten establecer y borrar selectivamente bits específicos en una variable de memoria entera.
Se accede a los bits individuales mediante su posición en la variable de memoria.
El bit más a la derecha se encuentra en la posición 0.
La posición se incrementa de derecha a izquierda.

Establecimiento de bits
135 | 1<<4
En una ubicación de memoria inicialmente ocupada con 135, se debe activar el bit 4.
Para ello, primero se desplaza el 1 (bit en la posición 0) 4 posiciones a la izquierda y, a continuación,
mediante una operación OR con el "asignación de memoria" 135, se fuerza que el bit 4 se active.
Esto da como resultado 151.

Borrar bits
135 & ~(1<<2)
En una ubicación de memoria inicialmente asignada a 135, se debe borrar el bit 2.
Primero, se desplaza un 1 a la posición 2 del bit, luego se calcula su complemento.
Esto resulta en una asignación de bits que es 1 en todas las posiciones excepto en la 2.
La operación AND con un "asignación de memoria" 135 fuerza el borrado del bit 2.
Esto produce el valor 131.

Usando variables
a=135
b=2005
c=a | b
Las dos variables a y b se asignan a números específicos.
Luego se crea otra variable c, a la que se le asignan los valores de a y b mediante la operación OR.
Como las variables se muestran una tras otra, las posiciones de los bits individuales se pueden comparar fácilmente.

La aplicación más sencilla de esta calculadora es, por supuesto, convertir un número de una representación a otra.
Para ello, simplemente introduzca el número en la representación numérica que desee.
Las tres representaciones numéricas utilizadas aquí se mostrarán siempre.

Conversión de decimal a binario

La conversión se realiza fácilmente a mano,
dividiendo repetidamente el número decimal o el resultado de la división anterior entre 2
y anotando el resto en cada paso.
El proceso finaliza cuando el resultado de la división es 0.
Los restos, leídos de derecha a izquierda, forman la representación binaria deseada.

Ejemplo: dado el número decimal 371
371:2 = 185 Resto 1
185:2 = 92 Resto 1
92:2 = 46 Resto 0
46:2 = 23 Resto 0
23:2 = 11 Resto 1
11:2 = 5 Resto 1
5:2 = 2 Resto 1
2:2 = 1 Resto 0
1:2 = 0 Resto 1
De esta forma se obtiene el número binario 101110011

Los nibbles individuales (posiblemente rellenados con ceros desde la izquierda) se pueden asignar fácilmente a dígitos hexadecimales.
Esto da como resultado el número hexadecimal 173.