这是在“普林斯顿比特币书”的第26页上写的。 我认为我理解为什么2pow(256)返回256位长度值,但为什么任何数字的除法的余数为2pow(256)返回固定长度为256位的值?
答案 0 :(得分:2)
如果您使用任意数字n
执行mod,则可能的结果范围为0
到n-1
。
您正在使用2pow(256)
进行mod,其中257
位为最高有效位为1
和256
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(4
到0
,可以使用15
位表示。
假设我们从4
开始。 0
mod 0
为2pow(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
。然后它会重复。