Ile wartości można przedstawić za pomocą N bitów?
Na przykład, jeśli n=9
, to ile różnych wartości można przedstawić w 9 cyfrach binarnych (bitach)?
Myślę, że jeśli ustawię każdy z tych 9 bitów na 1, uczynię najwyższą możliwą liczbę, jaką te 9 cyfry są w stanie reprezentować. Dlatego najwyższą wartością jest 1 1111 1111
, która równa się 511
w układzie dziesiętnym. Wnioskuję, że w związku z tym 9 cyfr binarnych może reprezentować 511 różnych wartości.
n
bity? 7 answers
29 = 512 wartości, bo tyle kombinacji zer i jedynek można mieć.
To, co te wartości reprezentują, zależy jednak od używanego systemu. Jeśli jest niepodpisaną liczbą całkowitą, będziesz miał:
000000000 = 0 (min)
000000001 = 1
...
111111110 = 510
111111111 = 511 (max)
W dopełniaczu two , który jest powszechnie używany do reprezentowania liczb całkowitych w binarnych, będziesz miał:
000000000 = 0
000000001 = 1
...
011111110 = 254
011111111 = 255 (max)
100000000 = -256 (min) <- yay integer overflow
100000001 = -255
...
111111110 = -2
111111111 = -1
Ogólnie rzecz biorąc, z K bitami można reprezentować 2 K wartości. Ich zasięg będzie zależeć od systemu, który używają:
Unsigned: 0 to 2 k -1
Podpisane: -2k-1 do 2 k-1-1
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-28 02:58:10
Czego ci brakuje: Zero to wartość
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-28 01:27:58
Lepszym sposobem na rozwiązanie tego problemu jest zacząć od małego.
Zacznijmy od 1 bitu. Które mogą być 1
LUB 0
. To 2 wartości, lub 10
w binarnym.
Teraz 2 bity, które mogą być 00
, 01
, 10
lub {[6] }to 4 wartości, lub 100
w binarnym... Widzisz wzór?
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-28 01:33:51
Dobra, skoro już "wyciekło": brakuje Ci zera, więc prawidłowa odpowiedź to 512
(511 jest największa, ale to od 0 do 511, a nie od 1 do 511).
Przy okazji, dobrym ćwiczeniem byłoby uogólnienie tego:
How many different values can be represented in n binary digits (bits)?
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-28 01:29:32
Bez chęci udzielenia Ci odpowiedzi tutaj jest logika.
Masz 2 Możliwe wartości w każdej cyfrze. masz ich 9.
Jak w bazie 10, gdzie masz 10 różnych wartości według cyfr, powiedzmy, że masz ich 2 (co daje od 0 do 99) : 0 do 99 daje 100 liczb. jeśli wykonasz obliczenia, masz funkcję wykładniczą
base^numberOfDigits:
10^2 = 100 ;
2^9 = 512
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-28 01:30:49
Jest łatwiej o tym pomyśleć. Zacznij od 1 bitu. Może to oczywiście reprezentować 2 wartości (0 LUB 1). Co się stanie, gdy dodamy trochę? Możemy teraz reprezentować dwa razy więcej wartości: wartości, które możemy reprezentować przed z dołączonym 0 i wartości, które możemy reprezentować przed z dołączonym 1.
Więc liczba wartości, które możemy reprezentować n bitami, wynosi tylko 2^n (2 do potęgi n)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-28 01:32:10
Brakuje Ci tylko tego, który schemat kodowania jest używany. Istnieją różne sposoby kodowania liczb binarnych. Przyjrzyj się podpisanym numerom. Dla 9 bitów zakresy i ilość liczb, które mogą być reprezentowane, będą się różnić w zależności od używanego systemu.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-28 01:57:36