【发布时间】:2011-07-14 10:04:34
【问题描述】:
在 x86 上实现 bignums 时,显然最有效的数字大小选择是 32 位。但是,您需要最多两倍于数字大小的算术(即 32+32=33、32*32=64、64/32=32)。幸运的是,x86 不仅提供了这一点,而且还可以从便携式 C (uint64_t) 访问它。
同样,在 x64 上,最好使用 64 位数字。这将需要 128 位算术(即 64+64=65、64*64=128、128/64=64)。幸运的是,x64 提供了这一点。不幸的是,它不能从便携式 C 中访问,尽管显然可以使用汇编。
所以我的问题是它是否可以从不可移植的 C 中访问。x64 上的任何 C 编译器是否提供对此的访问,如果是,语法是什么?
(请注意,我说的不是严格视为 32 位或 64 位字的集合的 128 位向量,它们之间没有进位传播,而是实际的 128 位整数运算。)
【问题讨论】:
标签: c integer x86-64 biginteger 128-bit