gpt4 book ai didi

java - 如何计算存储 N 位所需的 long(64 位)数?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:35:04 24 4
gpt4 key购买 nike

好吧,我可以通过逻辑来做到这一点,但我敢打赌有一个数学运算或表达式可以做到这一点。一个存在吗?如果是,那是什么?

算法如下:

private int calcNumberOfLongs(int size) {
if (size % 64 == 0) {
return size / 64;
} else {
return size / 64 + 1;
}
}

让我说清楚我想要什么:

对于 150 位,我需要三个 64 位长整数。两个当然只给我 128 位。这是第一个计算。

第二个计算,这个更重要,因为它会一直执行,是从 bit position 到 long。例如:

bit 5 -> first long
bit 64 -> first long
bit 65 -> second long
bit 140 -> third long

获取此信息的数学表达式和/或按位运算是什么?


好的,从下面的答案来看,它看起来像是从位位置到长,我们只是使用:

多仓=位仓/64

续篇在这里:How to turn a division into a bitwise shift when power of two?

最佳答案

我不相信有内置函数可以做到这一点,尽管您可以将代码简化为:

return (size + 63) / 64;

关于java - 如何计算存储 N 位所需的 long(64 位)数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13784540/

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