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