有人可以解释如何阅读这两个位掩码吗?
uint32_t = 0x1 << 0;
uint32_t = 0x1 << 1;
基本上,您如何将其翻译给无法阅读代码的人?哪个比另一个小?
有人可以解释如何阅读这两个位掩码吗?
uint32_t = 0x1 << 0;
uint32_t = 0x1 << 1;
基本上,您如何将其翻译给无法阅读代码的人?哪个比另一个小?
嗯,0x1 只是 1 的十六进制值,在二进制中表示为 ~001。当您对 0x1 应用 0 位移时,该值不会改变,因为您实际上并没有移动任何东西。当您移动 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