java - 关于sizeof的问题。我想反转数字中的位

标签 java loops integer bit-manipulation sizeof

Java 中与此等效的是什么?

for (i = (sizeof(num)*8-1); i; i--)  

num 是给定的数字,而不是数组。我想反转整数中的位。

最佳答案

Java 没有 sizeof。数组具有 length 属性,许多集合具有 size() 和类似的东西,但是任何任意对象的语言 sizeof 都是不支持也不需要。

相关问题

<小时/>

按 LSB-MSB 顺序获取整数位

least significant bit 中获取整数的位到其most significant bit ,你可以这样做:

    int num = 0xABCD1234;
    System.out.println(Integer.toBinaryString(num));
    for (int i = 0; i < Integer.SIZE; i++) {
        System.out.print((num >> i) & 1);
    }

打印:

10101011110011010001001000110100    // MSB-LSB order from toBinaryString
00101100010010001011001111010101    // LSB-MSB order from the loop

因此,在这种特定情况下,sizeof * 8 转换为 Integer.SIZE ,“用于以二进制补码形式表示 int 值的位数”。在 Java 中,该值固定为 32。

JLS 4.2.1 Integral types and values

For int, from -2147483648 to 2147483647, inclusive

关于java - 关于sizeof的问题。我想反转数字中的位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2987681/

相关文章:

types - 什么是定点整数?

c++ - 浮点/整数类型转换的可靠溢出检测

rust - 我应该在 64 位机器上使用 i32 还是 i64?

java - void 不是函数式接口(interface)

jQuery触发点击元素循环

java - 迭代列表直到列表为空

python - 通过更大的矩阵迭代子矩阵

java - onchange 强制页面提交

java - 如何通过 MapReduce 的第二个选项卡拆分单词?

java - 使用 isCancelled() 时 SwingWorker 不会停止