繁体   English   中英

128位整数在abseil库中是如何形成的?

[英]how is 128 bit integer formed in abseil library?

在 Abseil 库absl::uint128 big = absl::MakeUint128(1, 0); 这代表 2^64 ,但我不明白 '1' 和 '0' 在这里是什么意思。 有人可以解释一下这个数字是如何形成的吗?

absl::MakeUint128(x, y); 构造一个等于 2^64 * x + y 的数字

并查看https://abseil.io/docs/cpp/guides/numeric

如何? 以任何可能的方式。 但是有一个非常简单的方法来制作它。 您可能已经知道如何用以十为底的一位数进行算术运算,对吧? 然后你也知道用这个算术来得到以 10 为底的两位数的算术,对吧? 请注意,这会为您提供以 100 为底的一位数的算术(只需将“34”或“66”视为单个符号)。

您的计算机知道如何对以 2^64 为底的一位数进行算术运算,因此它进行了与您在以 10 为底数时使用相同的扩展来获得以 2^64 为底的两位数的算术运算。 然后这会导致以 2^128 为底的算术,或以 2 为底的 128 位数字的算术。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM