我在 C++ 中有:
typedef struct _msk {
char abc[4];
//some more variables
}
_msk mr;
if (some condition >= 70) {
mr.abc[0] |= 0xC0; //C0 in binary 11000000
mr.abc[1] |= 0x20; //20 in binary 100000
mr.abc[2] |= 0x44; //44 in binary 1000100
}
此处进行或运算,之后将存储值。 所以在内存中它是否像 (0th)11000000(1st)100000(2nd)1000100 因为它们在数组中? [4](总共0+1+2+3+4)实际可以存储多少位。
在 Java 中:
private BitSet abc = new BitSet(40);
如果需要更新或修改位,我们可以使用位集类提供的设置或获取方法。 在java中,如果我们需要进行OR操作,我们需要在后缀中添加0来得到相同的结果。我们可以在 C++ 中避免哪些? 谢谢
最佳答案
So in memory is it like (0th)11000000(1st)100000(2nd)1000100 as these are in array?
几乎:(0th)11000000(1st)00100000(2nd)01000100
how many bits can be actually stored in [4](total 0+1+2+3+4).
不是 0+...+4,而是 0+...+3,4 个字符大小为 8 位 = 32 位(索引:0、1、2、3)
而且您仍然可以在 Java 中使用按位运算符 - 不完全确定您在询问有关 Java 代码的内容??
关于java - 这些位如何在 C++ 中存储,如何在 Java 中表示类似的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5933172/