如何在C中访问数组元素的个别数?

时间:2010-08-09 11:54:07

标签: c

如果我有一些数组元素,我如何从数组元素buffer[0]中获取单个数字?

例如,假设我有buffer[0]=0x0605040302,我想先提取2,然后是0,然后是6,等等。

1 个答案:

答案 0 :(得分:4)

数组元素内容为一个数字。您正在尝试从中提取A DIGIT。寻找掩盖和转移 - &和>>运算符。

修改

掩码是一个“0”和“1”的字符串,可以让您从一个数字中隔离出感兴趣的位。包含十六进制数字0xF的掩码用于隔离数字中的各个十六进制数字。例如:

num = 0x4321 (= 0100_0011_0010_0001)
mask = 0x00f0 (= 0000_0000_1111_0000)
num & mask = 0x0020 (= 0000_0000_0010_0000)

有效地移动数字会将所需位移到数字中的所需位置。因此,将数字向右移动n个位置会使#n位置为#0。

num = 0x4321 (= 0100_0101_0010_0001)
num >> 8 = 0x0043 (= 0000_0000_0100_0011)

结合这两项操作,你就得到了提取的数字!