转到移位数太大
在Go的constant specification,应提到的是:转到移位数太大
数字常量表示的任意精度的精确值,并不会溢出。
所以,我想
const VeryVeryBigNumber = 1 << 200
和它的作品。然而,我可以尝试的最大转移数是511,并且使用512将会抛出:
shift count too large: 512
。
512代表什么?我无意使用它,我只想知道为什么它仅限于我的机器中的511(我正在使用ubuntu 64位并转到1.9.2)?
谢谢
回答:
512是一种任意限制。该规范说的唯一的一句话就是:
实施限制:虽然数字常量的语言有任意 精度,编译器可以使用精度有限的 内部表示实现它们。也就是说,每个 实现必须:
表示具有至少256位的整数常量。
不幸的是,comments around the limits没有给出理由。
在某些时候,必须使用限制。我会建议坚持所需的256.
以上是 转到移位数太大 的全部内容, 来源链接: utcz.com/qa/260362.html