按位右移>>在Objective-C [英] Bitwise right shift >> in Objective-C

查看:123
本文介绍了按位右移>>在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆