use*_*517 5 c bit-manipulation objective-c shift ios
我有一个变量(unsigned int)part_1.
如果我这样做:(
NSLog(@"%u %08x", part_1, part_1);打印无符号值和十六进制值)它输出:
2063597568 7b000000
(只有前两个会有值).
我想把它转换成
0000007b
所以我尝试过
unsigned int part_1b = part_1 >> 6(和很多变化)
但这输出:
32243712 01ec0000
我哪里错了?
Cha*_*rns 11
您想要移位6*4 = 24位,而不仅仅是6位.十六进制printf中的每个'0'代表4位.
unsigned int part_1b = part_1 >> 24;
^^
Run Code Online (Sandbox Code Playgroud)