我如何在C中设置整数的最低有效位

How can I set the least significant bit of an integer in C

如何在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 ​​设置为 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