• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

转到移位数太大

go 来源:Reza Kasyauqi 7次浏览

在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.


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)