static CBigNum bnProofOfWorkLimit(~uint256(0) >> 32);
这句话充斥着各种各样的魔法。到底是做什么的?
答案 0 :(得分:4)
假设uint256是256位无符号整数类型,并且运算符定义为内置类型,则将:
答案 1 :(得分:4)
>>是什么在C ++代码中意味着什么?
对于整数类型,它是二元右移运算符,它采用其第一个操作数的二进制表示,并将其移动到右侧的多个位置。 a >> b
与a / pow(2,b)
大致相同。
这句话充斥着各种各样的魔法。到底是做什么的?
uint256
不是标准类型或功能;我假设它是256位的大数字类型,具有合适的运算符重载,因此它的行为类似于标准数字类型。所以uint256(0)
是一个256位数,值为零。
~
是二元否定运算符;它将所有设置位置零,并设置所有零位。所以~uint256(0)
将包含256位,全部设置。
最后,移位将这些位向右移动32位。因此,前32位将全部为零,剩余的224位将被设置。
答案 2 :(得分:3)
我的猜测是一个转变。它将位向右移位,可能是32位。由于c ++运算符重载,我们无法确定没有看到uint256类。