如何在C中设置整数的最低有效位。 例如,我有一个带有以下位的4个数据
[0] Decimal: 131 Binary: 10000011
[1] Decimal: 11 Binary: 00001011
[2] Decimal: 115 Binary: 01110011
[3] Decimal: 236 Binary: 11101100
[4] Decimal: 245 Binary: 11110101
[5] Decimal: 75 Binary: 01001011
[6] Decimal: 74 Binary: 01001010
[7] Decimal: 116 Binary: 01110100
我必须用12位(整数)或0000 1010位更改所有这四个数据。
所以新的更新列表将是:
[0] Decimal: 130 Binary: 10000010
[1] Decimal: 11 Binary: 00001011
[2] Decimal: 114 Binary: 01110010
[3] Decimal: 237 Binary: 11101101
[4] Decimal: 244 Binary: 11110100
[5] Decimal: 74 Binary: 01001010
[6] Decimal: 74 Binary: 01001010
[7] Decimal: 116 Binary: 01110100
答案 0 :(得分:3)
要将位0设置为1,请使用
int_var | 1
要将位0重置为零,请使用
int_var & ~1
您示例中的操作看起来并不一致:
10000011
10000010 & ~1
00000001 xor
00001011
00001011 nop
00000000 xor
01110011
01110010 & ~1
00000001 xor
11101100
11101101 & ~1
00000001 xor
11110101
11110100 & ~1
00000001 xor
01001011
01001010 & ~1
00000001 xor
01001010
01001010 nop
00000000 xor
01110100
01110100 nop
00000000 xor