在以下示例中读取位掩码和位

时间:2013-09-01 04:52:18

标签: objective-c mask bit

有人可以解释如何读取这两个位掩码吗?

uint32_t = 0x1 << 0;
uint32_t = 0x1 << 1;

基本上,您如何将此转换为无法读取代码的人?哪一个小于另一个?

1 个答案:

答案 0 :(得分:2)

嗯,0x1只是十六进制值1,二进制表示为~001。当您将0位移位到0x1时,该值不会更改,因为您实际上没有移位任何内容。当您移动1时,您正在查看~010的表示,其中良好的数字是2,因为您在两列中有1并且在其他地方都为零。

因此,uint32_t i = 0x1 << 0;的价值低于uint32_t j = 0x1 << 1;

uint32_t i = 0x1 << 0;
uint32_t j = 0x1 << 1;

NSLog(@"%u",i);   // outputs 1
NSLog(@"%u",j);   // outputs 2