Re: [問題] 兩題數字系統的問題

作者: CaptainH (Cannon)   2012-08-21 15:57:56
※ 引述《yunruo ()》之銘言:
: 大家好
: 想請問兩題關於數字系統的問題
: 第一題
: 用 n 個 bits 以 1 的補數法表示整數,其範圍
: A. -2^(n-1) -> 2^(n-1)
: B. -2^(n-1)-1 -> 2^(n-1)-1
: C. -2^n-1 -> 2^n
: D. -2^(n-1)-1 -> 2^(n-1)
: E. -2^(n-1) -> 2^(n-1)-1
: Ans: A (這題是不是錯了呢?
MSB (最高位的 bit) 用來代表正負號, MSB 之後的 n-1 bits 用來表示數值
範圍從 10000...0 ~ 011111...1 (二進位)
-[ 2^(n-1)-1 ] ~ 2^(n-1)-1 (十進位)
沒有答案
: 第二題
: 一個 10 進位數字有 30 個 digit,則它的二進位表示大約有多少個 digit?
: A. 30
: B. 60
: C. 90
: D. 120
: E. 150
: Ans: C
: 謝謝
假設這數字是 n, 則 10^29 <= n < 10^30
兩邊同取 log2, 29*log2(10) <= n < 30*log2(10)
96.xxx <= log2(n) < 99.xxx
( log2(10) = 1 / log10(2) ~= 1/0.3010 ~= 3.3xxx )
所以 n 用二進位表示大約要 97~100 bits, 選 C.
或是用估的, 2^10 = 1024 ~= 10^3
所以 10^30 = (10^3)^10 ~= (2^10)^10 = 2^100 ==> 選 C
作者: yunruo   2012-08-21 16:45:00
1的補數中全為1不是代表0嗎?第二題 需要 97~100bits的話 不是應該選D?不過選90的話 不就沒辦法包含所有的可能數字了?

Links booklink

Contact Us: admin [ a t ] ucptt.com