Objective-C中的按位右移>>

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)