当前位置: 首页 > 知识库问答 >
问题:

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

关飞翼
2023-03-14

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

以下是算法:

private int calcNumberOfLongs(int size) {
    if (size % 64 == 0) {
        return size / 64;
    } else {
        return size / 64 + 1;
    }
}
bit 5 -> first long
bit 64 -> first long
bit 65 -> second long
bit 140 -> third long

长位置=位位置/64

接下来是:当2的次方时,如何将除法转换为按位移位?

共有1个答案

锺离赤岩
2023-03-14

我不相信有一个内置函数来完成这一任务,尽管您可以将代码简化为:

return (size + 63) / 64;
 类似资料:
  • 问题内容: 我想知道x86和x64中的64位长吗? 问题答案: 是。Java 在任何JVM上都是64位,无一例外。所有Java原语类型都是完全可移植的,并且在所有实现中都具有固定的大小。

  • 问题内容: 在SQL Server 2008上,如何将存储过程放在数据库的“存储过程”文件夹中? 当我这样声明时: 它去: 如何告诉服务器,并将其存储在: 编辑: 如果我这样声明: 它抱怨: 如果我使用“ USE”关键字,它会抱怨: 也许问题是我使用的是MS Management Studio,并且直接连接到服务器,而不是任何特定的数据库? 问题答案: 尝试以下

  • 我有个奇怪的MSI!!!

  • 3D物理模拟需要访问着色器中相邻顶点的位置和属性以计算顶点的新位置。2D版本可以工作,但无法将解决方案移植到3D。翻转两个3D纹理似乎是正确的,为一个纹理输入x、y和z坐标集,并获取包含相邻点的位置速度加速度数据的vec4s以用于计算每个顶点的新位置和速度。2D版本使用1次带有帧缓冲区的绘图调用将所有生成的gl_FragColors保存到采样器2D。我想使用帧缓冲区对采样器3D做同样的事情。但它看

  • 如果一个C程序改变字节数组中的一个字节,会发生什么机器指令?硬件是否需要读取8个字节、更改一个字节并存储它(使用2个内存操作)? 编辑:特别是在x86-64体系结构上

  • 问题内容: 我正在尝试计算由文本字段接收的输入填充的数组的总数,均值和中位数。我设法算出了总数和均值,但我只是无法获得中位数。我认为在执行此操作之前需要对数组进行排序,但是我不确定如何执行此操作。这是问题吗,还是我没有找到另一个问题?这是我的代码: 问题答案: Java中的Arrays类具有静态的排序功能,您可以使用调用该功能。