这是一个家庭作业问题,我被困住了。
考虑无符号整数表示。存储包含以下内容的十进制数需要多少位:
i) 3 digits ii) 4 digits iii) 6 digits iv) n digits我知道无符号整数的范围是0到2^n,但我不知道表示一个数字所需的位数如何取决于它。请帮帮我。
提前谢谢。
发布于 2011-08-22 15:52:55
你只需要计算每一种情况的范围,找出2的最低幂,它比那个范围要高。
例如,在i中,3位小数-> 10^3 =1000个可能的数字,因此您必须找到高于1000的最小幂2,在本例中是2^10 = 1024 (10位)。
编辑:--基本上,您需要用您拥有的数字数来查找可能的数字数,然后找出哪些数字(在另一个基中,在本例中是2,二进制)至少具有与十进制中的数字相同的可能数。
若要计算给定数字数的可能性数:possibilities=base^ndigits
因此,如果小数位数为3位(基数为10),则有10^3=1000可能性。然后,您必须在二进制(位,基2)中找到一些数字,以便可能性的数量至少为1000,在本例中为2^10=1024 (9位数字不够,因为2^9=512小于1000)。
如果你概括了这一点,你就有:2^nbits=possibilities <=> nbits=log2(possibilities)
它适用于i),给出:log2(1000)=9.97,由于位数必须是整数,所以必须将其舍入到10。
发布于 2012-07-20 20:32:49
为了概括表示一个数字需要多少位的技术,就这样做了。你有一个表示的R符号,你想知道有多少位,解这个方程R=2^n或log2(R)=n,其中n是位数,R是表示符号的数目。
对于十进制数字系统R=9,所以我们求解9=2^n,答案是每小数位3.17位。因此,一个3位数字需要9.51位或10位。一个1000位数字需要3170位
发布于 2015-06-10 08:25:59
假设问题是问你要存储的最小位数是多少
我处理这个问题的方法是:
这个问题可以通过递归地除以999除以2来解决。然而,用数学的力量来帮助我们就更简单了。从本质上讲,我们正在为下面的方程求解n:
2^n = 999
nlog2 = log999
n ~ 10你需要10位才能存储3位数字。
使用类似的方法来解决其他的子问题!
希望这能有所帮助!
https://stackoverflow.com/questions/7150035
复制相似问题