通过在位中添加列是什么意思?

时间:2011-05-31 21:19:31

标签: c++ bit

我无法理解以下文字的含义,我在一本书中提到过:

  

考虑四个两位数   00011011。如果你加起来   一点,你得到一个偶数。   同样,如果你加了两个,你   得到一个偶数。无论多少   数字中的位,如果你加了一个   专栏,你得到一个偶数。

具体来说,00的“加一点”是什么意思?

5 个答案:

答案 0 :(得分:6)

他们只是意味着如果你在一列中写下四个数字:

00
01
10
11

...你看看第一列中有多少位(“一位”)是1,你得到一个偶数。类似地,对于第二列(“两位”)。

他们的主张是,无论数字有多少位,如果你用这么多位写下所有数字,每列中1的数字将是偶数。

对于一位数字,他们的说法是假的。一般来说,对于n位,每列中1的数量(显然)为2 ^(n-1),除非n = 1,否则为偶数。

这是什么书?他们想要做什么点?

答案 1 :(得分:2)

二进制数中的位通常根据它们各自的2的幂来“按列”命名:

00000000
│││││││└── 1's bit
││││││└─── 2's bit
│││││└──── 4's bit
││││└───── 8's bit
│││└────── 16's bit
││└─────── 32's bit
│└──────── 64's bit
└───────── 128's bit

答案 2 :(得分:0)

“一”位是表示“一”的位,即最右位。 “two”位是用于保持2的位,即右侧的第二位。 “两个”位左边的下一位是“四”等等。

001 = 1
010 = 2
100 = 4

答案 3 :(得分:0)

回想十进制数字的数字。例如:184。从最右边的数字开始,我们有4个,这相当于说“这个数字中有4个”。它位于那个地方,当我们向左前进时,我们在十位中有8个(意思是表示有8个数字),而在数百个地方有1个(只有1个)。对于像10这样的二进制数(2的二进制数),最右边的位置在1位,“列”(右手边的位置)是表示该数字中有多少1的位置。沿着相同的路线,1位于两个位置,表示这个数字中有两个。

答案 4 :(得分:0)

我认为它试图说的是,如果你把所有数字都用一定数量的位 - 在这个例子中,2然后加上每列的值,结果将是偶数。

因此,对于4个2位数字,分别添加每个列:

 0   0
 0   1
 1   0
+1  +1
 -   -
 2   2

每列添加2 - 偶数

类似地,对于所有3位数字:

 0   0   0
 0   0   1
 0   1   0
 0   1   1
 1   0   0
 1   0   1
 1   1   0
+1  +1  +1
 -   -   -
 4   4   4

每列添加到4 - 偶数