按位右移>>在Objective-C [英] Bitwise right shift >> in Objective-C
本文介绍了按位右移>>在Objective-C的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个变量(unsigned int类型) part_1
。
I have a variable (unsigned int) part_1
.
如果我这样做:的NSLog(@%U%08X,part_1,part_1);
(打印无符号值,十六进制值),它输出:
If I do this:
NSLog(@"%u %08x", part_1, part_1);
(print unsigned value, and hex value) it outputs:
2063597568 7b000000
(仅前两个会有值)。
我想将其转换为
0000007b
所以我试着做 unsigned int类型part_1b = part_1>> 6
(和许多的变化)
So i've tried doing
unsigned int part_1b = part_1 >> 6
(and lots of variations)
但这种输出:
32243712 01ec0000
我在哪里去了?
推荐答案
您想通过6 * 4 = 24位,而不是仅仅6位转移。每一个0的十六进制的printf重新presents 4位。
You want to shift by 6*4 = 24 bits, not just 6 bits. Each '0' in the hex printf represents 4 bits.
unsigned int part_1b = part_1 >> 24;
^^
这篇关于按位右移>>在Objective-C的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文