2015-02-11 29 views

回答

2

“位”是“二进制数字”。这意味着(根据定义),它们是基数为2的数字系统中的数字。因此,对于每个列,您只会得到两个值(0或1),而不是您习惯的基本10系统(每列中数字为0-9)。

基10系统中的每列对应于10的幂 - 例如123是1 x 10^2 + 2 * 10^1 + 3 * 10^0。

Binary以同样的方式工作,除了基数2而不是10以外。所以10011是1 * 2^4 + 0 * 2^3 + 0 * 2^2 + 1 * 2^1 + 1 * 2^0十进制是19。

现在,要计算出需要表示给定数字范围的位数(即数字),您可以从一位开始并继续添加另一位,直到您有足够的空间。例如,0-1将适合一位; 50将需要至少6位,因为1对于0-1是足够的,2位对于0-3是足够的,3位对于0-7是足够的,等等,直到5位仅足够用于0-31,但6绰绰有余。

每增加一位,可以用这么多位表示的可能数字数量加倍(就像添加另一个基数为10的数字可以表示十倍的数字一样)。 0位可以表示0个数字。 1位可以表示2个数字(0-1)。 2位可以代表2 * 2的数字。 3位可以表示2 * 2 * 2 = 2^3个数字。 4位可以表示2^4个数字。等等。

剩下要考虑的唯一棘手的事情是区分可表示数字的数量和这些表示所对应的实际范围。如果你有4位,则有2^4个不同的位组合(0000到1111)。但是如果你认为0000代表零,那么你可以放入四位的最大数字是15(不是16,因为即使有16种不同的表示形式,范围[0-15]包含16个不同的数字(计数它们!)。所以16本身就是第17个数字,因此需要5位来表示)。

我希望这个澄清事情!

0

在二进制中,最好考虑一列1和0。 每列表示2提升到某些权力。你从右到左读,最右边总是2^0次方,然后是2^1等等。

当2^0设置为0时,你会得到一个值0. 当2^0设置为1,你会得到1的值(任何提高到零的能量都是1.)

将二进制数1或0表示为打开或关闭。 你把他们各自的产出加起来。 每一列或0/1值都表示一个位。

000000 = 0 
000001 = 1 
000010 = 2 
000011 = 3 
000100 = 4 
000101 = 5 
000110 = 6 
000111 = 7 

等等。由于2^5 = 32,因此第6列需要是1,而不是第5列。因为我们从第零指数开始。

100000 = 32, so 6 bits, but it was only inclusive of 31, so we have to go down one value. 
011111 = 31, so 5 bits, are absolutely necessary for representing the number 31. 
0

你需要5位。每个比特可以具有两个值中的一个,并且5比特的联合数目是2^5。可以表明,2^n是通过考虑基体情况下的组合的n位的数目:所述感应步骤

1位=两种可能的选择= 2^1

然后。

如果我们有N位,那么我们可以把它分成1位加n-1位。如果公式为真,则有最后n-1个比特的2 ^(n-1)个组合,并且对于这些组合中的每一个,第一个比特可以位于两个位置之一中。因此,对于N位,存在2 *(2 ^(n-1))个组合,其等于2 ^(n-1 + 1),其等于2^n。

这是归纳证明。第一步很容易(n = 1),然后第二步告诉我们,如果n = 1,那么对n = 2,然后n = 3,然后n = 4等情况是成立的。

相关问题