Quanti valori può essere rappresentato con n bit?
Domanda
Per esempio, se n=9
, poi come molti valori diversi possono essere rappresentati in 9 cifre binarie (bit)?
Il mio pensiero è che se ho impostato ognuno di quelli a 9 bit a 1, farò il più alto numero possibile che quei 9 le cifre sono in grado di rappresentare.Pertanto, il valore più alto è 1 1111 1111
che è uguale a 511
in decimale.Devo concludere che, pertanto, a 9 cifre binarie può rappresentare 511 valori diversi.
È il mio processo di pensiero è corretto?Se non è così, qualcuno potrebbe gentilmente spiegare cosa mi manca?Come posso generalizzare a n
bit?
Soluzione
2 9 = 512 valori, perché è così che molte combinazioni di zeri e quelli che si possono avere.
Quello che questi valori rappresentano tuttavia dipenderà il sistema che si sta utilizzando. Se si tratta di un intero senza segno, si avrà:
000000000 = 0 (min)
000000001 = 1
...
111111110 = 510
111111111 = 511 (max)
due di complemento, che è comunemente utilizzato per rappresentare numeri interi in binario, si' ll avere:
000000000 = 0
000000001 = 1
...
011111110 = 254
011111111 = 255 (max)
100000000 = -256 (min) <- yay integer overflow
100000001 = -255
...
111111110 = -2
111111111 = -1
In generale, con k bit è possibile rappresentare 2 k Valori. La loro gamma dipende dal sistema che si sta utilizzando:
Unsigned: 0 e 2 k -1
Firmata: -2 k-1 2 k-1 -1
Altri suggerimenti
Che cosa vi state perdendo: Zero è un valore
Un modo migliore per risolverlo è quello di avviare piccole.
La partenza di Let con 1 bit. Che può essere sia 1
o 0
. Ecco 2 valori, o 10
in binario.
2 bit, che possono essere sia 00
, 01
, 10
o 11
Ecco 4 valori o 100
in binario ... vedere il modello?
D'accordo, dal momento che già "trapelata": ti manca lo zero, quindi la risposta corretta è 512
(511 è il più grande uno, ma è 0-511, non 1-511)
A proposito, un buon esercizio follow sarebbe quello di generalizzare questo:
How many different values can be represented in n binary digits (bits)?
Senza voler dare la risposta qui è la logica.
Hai 2 possibili valori di ogni cifra. avete 9 di loro.
come in base 10 in cui si dispone di 10 valori diversi per cifra Diciamo che avete 2 di loro (che fa da 0 a 99): da 0 a 99 marche 100 numeri. se si fa il calcolo de si dispone di una funzione esponenziale
base^numberOfDigits:
10^2 = 100 ;
2^9 = 512
C'è un modo più semplice di pensare a questo.Iniziare con 1 bit.Questo può ovviamente rappresentare 2 valori (0 o 1).Cosa succede quando si aggiunge un po'?Ora siamo in grado di rappresentare due volte come molti valori:i valori che ci potrebbe rappresentare la prima con un 0 aggiunto ed i valori che ci potrebbe rappresentare la prima con un 1 aggiunto.
In modo che il numero di valori che possiamo rappresentare con n bit è a soli 2^n (2 elevato alla potenza n)
La cosa si sta perdendo è quale schema di codifica viene utilizzato. Ci sono diversi modi per codificare i numeri binari. Se vuoi in rappresentazione dei numeri relativi. Per 9 bit, gli intervalli e la quantità di numeri che possono essere rappresentati differiscono a seconda del sistema utilizzato.