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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top