|
|
|
|
| |
| 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:
| dec | hex | bin |
|---|---|---|
| 0 | 0x0 | 0000 |
| 1 | 0x1 | 0001 |
| 2 | 0x2 | 0010 |
| 3 | 0x3 | 0011 |
| 4 | 0x4 | 0100 |
| 5 | 0x5 | 0101 |
| 6 | 0x6 | 0110 |
| 7 | 0x7 | 0111 |
| 8 | 0x8 | 1000 |
| 9 | 0x9 | 1001 |
| 10 | 0xa | 1010 |
| 11 | 0xb | 1011 |
| 12 | 0xc | 1100 |
| 13 | 0xd | 1101 |
| 14 | 0xe | 1110 |
| 15 | 0xf | 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
185:2 = 92 Resto
92:2 = 46 Resto
46:2 = 23 Resto
23:2 = 11 Resto
11:2 = 5 Resto
5:2 = 2 Resto
2:2 = 1 Resto
1:2 = 0 Resto
De esta forma se obtiene el número binario
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