作者zptdaniel ()
看板TransCSI
标题[问题] 数值表示范围、unsigned int表示范围、Huffman code
时间Tue Oct 14 22:49:09 2008
1. 使用相同的位元数目,哪一个数字表示法能表示较大的正整数值?
(A)2的补数 (B)1的补数 (C)Unsigned整数 (D)Biased/Excess-K
Ans:(D)
* 请问为什麽不是(C)呢?
Excess所能表示的范围公式如右: -2^(n-1) ~ +2^(n-1) -1
unsigned的公式不是应该为: 0 ~ 2^n -1 吗?
我怎麽看都觉得是(C)才对呀!
2.假设某系统中C语言之int型别与unsigned int 型别之变数每个各占2bytes
之记忆体空间,请分别写出他们所能表示之整数的范围.
Ans:(1)-32768~+32767
(2)0~(2^16) -1 = 0 ~ 65535
*假设上一题对於unsigned的公式为正确的话,那此题的第二个答案就是对的.
但如此一来不就互相矛盾了吗?
3.Huffman Code到底要怎麽编码呢? 之前补习的时候老师教的是
Step1:找出每个符号出现的机率.
Step2:合并出现机率最低的两个符号,将出现机率相加,重复此Step
直到合并出最後一个符号(root)为止
Step3:依据合并的关系,将合并出来的符号以1个bit表示.即是说一个符号用0表示
一个符号用1表示.
可是依照老师教的这个方式写的话..有的时候写出来的答案又跟解答不一样.
或是可能会画出两种不一样的图案两种不一样的编码...搞的我都不知道哪一个解法
是正确的. 有没有板上的前辈可以教教我>"<
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.194.97.168
※ 编辑: zptdaniel 来自: 123.194.97.168 (10/14 22:49)