在Abseil库absl::uint128 big = absl::MakeUint128(1, 0);中,这表示2^64,但我不明白'1‘和'0’在这里意味着什么。有人能解释一下这个数字是怎么形成的吗?
发布于 2022-07-13 15:50:01
absl::MakeUint128(x, y);构造一个等于2^64 *x+y的数字
发布于 2022-07-13 16:20:39
多么?以任何可能的方式。但是有一个非常简单的方法来制造它。你可能已经知道如何用基数为10的一个数字来做算术了,对吧?然后你也知道如何用这个算法得到基数为10的两位数的算术,对吗?请注意,这将为您提供一个基数为100的数字的算术(只需将'34‘或'66’作为单个符号即可)。
您的计算机知道如何在基数2^64中生成一个数字数字的算术,因此它提供了与您在基数10中获得两个数字数字的算法相同的扩展,在基2^64中得到两个数字的算术。这将导致基2^128中的算术,或基2中128位数的算术。
https://stackoverflow.com/questions/72969054
复制相似问题