gpt4 book ai didi

c++ - c++11 中任意大小整数的最低 31 位

转载 作者:行者123 更新时间:2023-11-30 01:09:12 26 4
gpt4 key购买 nike

我需要获取某个整数的最低 31 位,它比标准的 32 位整数大。

要么得到一个 32 位 int 和大整数的最低 31 位,要么从大整数得到一个填充的 bytearray 就足够了。

在 c# 中,我会使用 BigInt 和 .toByteArray - 在 c++11 中有类似的东西吗(我是 c++ 的菜鸟)?

最佳答案

屏蔽最低31位并返回结果:

template<typename T>
T mask31(T x) {
static_assert(std::is_integral<T>::value, "mask31 is only supported on integers!");
return x & (T)0x7fffffff;
}

如果你知道你正在使用的类型,你当然可以取消模板 goop 并直接内联掩码 :-)

关于c++ - c++11 中任意大小整数的最低 31 位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40754057/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com