Puede convertir decimal a binario y binario a decimal. Pero, ¿cómo se puede representar el número "256"?
255 = 11111111
1 byte no puede tener más de 8 dígitos binarios (bits). ¿Cómo es esto posible?
Respuesta1
Preguntas cómo representar 256 en binario, pero supongo que te preguntas por qué la gente dice que los bytes pueden almacenar 256 números diferentes, cuando el número más grande que almacena es 255. Como dijo Claudiop, las computadoras comienzan a contar en 0, entonces 0 es en realidad el primer número, 1 es el segundo, 2 es el tercero... 255 es el 256.
Además, 11111111 es sólo 255 para bytes sin firmar. Cuando tiene un byte firmado (un valor con signo es aquel que puede contener valores negativos), 11111111 es en realidad -1. Verhttp://en.wikipedia.org/wiki/Two's_complement. De la forma en que funciona el complemento a dos, sumar un número negativo a un número positivo da como resultado 0. Como han dicho otras personas, si agregamos un bit a 11111111 y su tipo de datos solo admite 8 bits, el último bit se desbordará y lo dejará con 0. Para bytes con signo, los valores oscilan entre -128 y 127. 128 números negativos + 0 + 127 números positivos = 256 números en total.
Para valores con signo, el primer bit es el bit de "signo". Si este bit está establecido, el número es negativo. 10000000 es negativo, 01000000 es positivo, 11111111 es negativo, 01111111 es positivo...
Si estás en Windows (tal vez Mac también lo tenga), puedes abrir la calculadora, cambiarla al modo de programador, elegir sbyte y jugar con los bits para ver cómo se correlacionan con sus representaciones decimales.
Respuesta2
Bueno, necesitas 2 bytes para representar eso. 256 = 00000001 00000000
Respuesta3
Como ya sabes, 255d (decimal) equivale a 11111111b (binario). Si ahora desea sumar 1 al valor, hay dos posibilidades:
O solo tienes 8 bits. En este caso, el llamadoDesbordamientosucede. Entonces, "internamente", se agregará el 1, lo que dará como resultado 100000000b (256d en 9 bits). Pero como sólo tiene 8 bits disponibles, los 8 bits inferiores serán "devueltos". Entonces terminará con 0d = 0b (se establecerá un indicador de desbordamiento especial en la mayoría de las arquitecturas de computadora, solo como nota al margen).
Piense en esto como si contara con los dedos. Imagina que tus dedos muestran 9d. Ahora agregas un dedo más. Terminas con 10. ¿Qué haces si quieres agregar uno más?
La otra posibilidad es que tengas más de 8 bits disponibles. En este caso simplemente puedes agregar un dígito más al principio y el resultado realmente será 100000000b = 256d.
Un byte es la "unidad" más pequeña que puede abordar un sistema informático (sistema de memoria). Esto significa que si desea conocer solo un bit, debe pedirle al sistema de memoria que le proporcione un determinado byte de una dirección y luego debe calcular usted mismo el valor del bit que le interesa.
Pero de la misma manera que 8 bits forman un byte, también existen tipos de datos más grandes. 2 bytes forman una palabra (16 bits), dos palabras (cuatro bytes, 32 bits) forman una palabra doble. Y las arquitecturas estándar actuales de 64 bits incluso tienen tipos de datos de 64 bits (los llamados registros).
Respuesta4
Puedes representarlo mediante uncambio de bitsfuncionamiento (izquierda o derecha según elendianidadde representación binaria). Por ejemplo, esta línea funciona para una representación big endian (el byte más significativo primero):
1 << 8
Un sin firmarbytesolo puede contener 256 valores que incluyen el rango de [0 - 255]. Para el valor 256, necesitaría utilizar un tipo de datos que pueda contener un valor mayor, por ejemplo, un número entero.