kas*_*uqi 4 go
在Go的常量规范中,提到:
数字常量表示任意精度的精确值并且不会溢出。
所以我尝试了
const VeryVeryBigNumber = 1 << 200
它有效。然而,我可以尝试的最大班次计数是 511,使用 512 会抛出:
shift count too large: 512。
shift count too large: 512
512代表什么?我无意使用它,我只是想知道为什么它在我的机器中限制为511(我使用的是ubuntu 64位和go 1.9.2)?
谢谢
Mar*_*arc 5
512 是一种任意限制。规范中唯一说的是:
实现限制:尽管数字常量在语言中具有任意精度,但编译器可以使用精度有限的内部表示来实现它们。也就是说,每个实施都必须: 表示至少 256 位的整数常量。
实现限制:尽管数字常量在语言中具有任意精度,但编译器可以使用精度有限的内部表示来实现它们。也就是说,每个实施都必须:
表示至少 256 位的整数常量。
不幸的是,有关限制的评论没有给出理由。
在某些时候,必须使用限制。我建议坚持使用所需的 256。
归档时间:
8 年,5 月 前
查看次数:
398 次
最近记录: