binary - requieren - cuantos numeros pueden representarse con 8 bits
¿Cuántos valores se pueden representar con n bits? (7)
2 9 = 512 valores, porque esa es la cantidad de combinaciones de ceros y unos que puedes tener.
Sin embargo, lo que esos valores representan dependerá del sistema que esté utilizando. Si es un número entero sin signo, tendrá:
000000000 = 0 (min)
000000001 = 1
...
111111110 = 510
111111111 = 511 (max)
En el complemento a dos , que se usa comúnmente para representar enteros en binario, tendrás:
000000000 = 0
000000001 = 1
...
011111110 = 254
011111111 = 255 (max)
100000000 = -256 (min) <- yay integer overflow
100000001 = -255
...
111111110 = -2
111111111 = -1
En general, con k bits puedes representar 2 valores k . Su alcance dependerá del sistema que esté utilizando:
Sin firmar: 0 a 2 k -1
Firmado: -2 k-1 a 2 k-1 -1
Por ejemplo, si n=9
, ¿cuántos valores diferentes se pueden representar en 9 dígitos binarios (bits)?
Mi pensamiento es que si configuro cada uno de esos 9 bits en 1, haré el número más alto posible que esos 9 dígitos puedan representar. Por lo tanto, el valor más alto es 1 1111 1111
que equivale a 511
en decimal. Concluyo que, por lo tanto, 9 dígitos de binario pueden representar 511 valores diferentes.
¿Mi proceso de pensamiento es correcto? Si no, ¿alguien podría explicar amablemente lo que me estoy perdiendo? ¿Cómo puedo generalizarlo a n
bits?
De acuerdo, ya que "se filtró": te falta cero, por lo que la respuesta correcta es 512
(511 es el más grande, pero es 0 a 511, no 1 a 511).
Por cierto, un buen ejercicio de seguimiento sería generalizar esto:
How many different values can be represented in n binary digits (bits)?
Hay una manera más fácil de pensar sobre esto. Comience con 1 bit. Esto obviamente puede representar 2 valores (0 o 1). ¿Qué sucede cuando agregamos un poco? Ahora podemos representar el doble de valores: los valores que podríamos representar antes con un 0 anexado y los valores que podríamos representar antes con un 1 anexado.
Entonces, la cantidad de valores que podemos representar con n bits es solo 2 ^ n (2 a la potencia n)
Lo que te estás perdiendo: Zero es un valor
Lo que te falta es qué esquema de codificación se está utilizando. Hay diferentes formas de codificar números binarios. Mire en representaciones de números firmados. Para 9 bits, los rangos y la cantidad de números que se pueden representar diferirán según el sistema utilizado.
Sin querer darte la respuesta aquí está la lógica.
Tienes 2 valores posibles en cada dígito. tienes 9 de ellos.
como en la base 10 donde tienes 10 valores diferentes por dígito, digamos que tienes 2 (lo que hace de 0 a 99): de 0 a 99 hace 100 números. si haces el cálculo tienes una función exponencial
base^numberOfDigits:
10^2 = 100 ;
2^9 = 512
Una mejor manera de resolverlo es comenzar pequeño.
Comencemos con 1 bit. Que puede ser 1
o 0
. Eso es 2 valores, o 10
en binario.
Ahora 2 bits, que pueden ser 00
, 01
, 10
o 11
Eso es 4 valores, o 100
en binario ... Ver el patrón?