为什么X mod 2pow(256)应该返回256位的固定大小输出?

时间:2016-09-04 16:44:16

标签: binary modular-arithmetic

这是在“普林斯顿比特币书”的第26页上写的。 我认为我理解为什么2pow(256)返回256位长度值,但为什么任何数字的除法的余数为2pow(256)返回固定长度为256位的值?

1 个答案:

答案 0 :(得分:2)

如果您使用任意数字n执行mod,则可能的结果范围为0n-1

您正在使用2pow(256)进行mod,其中257位为最高有效位为1256 0 s。

可能的结果是从0(2pow(n))-1的范围,可以使用256位作为最大值(2pow(n))-1来表示,其为二进制形式256 continuous {{ 1}} S上。

因此输出长度或范围将是固定的,如果您使用数字1进行mod,则可以使用n位表示。

尝试用长度4来理解它。

so 2pow(4)为16.二进制形式2pow(n)10000位组成。

如果您执行任何数字mod 5),答案将从2pow(40,可以使用15位表示。 假设我们从4开始。 0 mod 02pow(4),可以用0位表示。 因此,最高4它将提供相同的输出(15 mod number)作为输入,因此可以使用2pow(4)位表示。

4

这个序列一直在继续。

对于输入0%16=0 Binary:0000 1%16=0 Binary:0001 2%16=0 Binary:0010 ......................... ......................... 15%16=0 Binary:1111 16%16=0 Binary:0000 17%16=1 Binary:0001 ......................... ......................... 31%16=0 Binary:1111 32%16=0 Binary:0000 33%16=1 Binary:0001 ......................... ,它会输出16。(0 mod 16)。所以这个序列一直持续到2(pow)4。然后它会重复。