5

我有一个变量 (unsigned int) part_1

如果我这样做:( NSLog(@"%u %08x", part_1, part_1);打印无符号值和十六进制值)它输出:

2063597568 7b000000

(只有前两个会有值)。

我想将其转换为

0000007b

所以我试过做 unsigned int part_1b = part_1 >> 6(还有很多变化)

但这输出:

32243712 01ec0000

我哪里错了?

4

1 回答 1

11

您想移动 6*4 = 24 位,而不仅仅是 6 位。十六进制 printf 中的每个“0”代表 4 位。

unsigned int part_1b = part_1 >> 24;
                                 ^^
于 2013-11-05T17:00:26.290 回答