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

时间:2015-11-15 23:10:14

标签: c bits

如何在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

1 个答案:

答案 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