私は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
}
ここでOR操作が行われ、その後値が保存されます。これらは配列内にあるため、メモリ内では (0th)11000000(1st)100000(2nd)1000100 のようになりますか? [4] に実際に格納できるビット数 (合計 0+1+2+3+4)。
Java の場合:
private BitSet abc = new BitSet(40);
ビットの更新または変更が必要な場合は、bitset クラスが提供する set メソッドまたは get メソッドを利用できます。Java では、OR 演算を実行する必要がある場合、同じ結果を得るためにサフィックスに 0 を追加する必要があります。C ++で回避できるのはどれですか?? ありがとう