Objective-C位运算符-位运算符的程序实例

来源:互联网 发布:知乎评论 编辑:程序博客网 时间:2024/05/17 13:10
Mike发个范例4-7,来演示下前面介绍的四种各种位运算符:按位与,按位或,按位异或,一次求反。

01 // Bitwise operators illustrated
02 
03 #import <Foundation/Foundation.h>
04 
05 int main (int argc, const char * argv[])
06 {
07     NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
08 
09     unsigned int w1 = 0xA0A0A0A0, w2 = 0xFFFF0000, w3 = 0x00007777;
10     
11     NSLog(@"%x %x %x", w1 & w2, w1 | w2, w1 ^ w2);
12     NSLog(@"%x %x %x", ~w1, ~w2, ~w3);
13     NSLog(@"%x %x %x", w1 ^ w1, w1 & ~w2, w1 | w2 | w3);
14     NSLog(@"%x %x", w1 | w1 & w3, w1 | w2 & ~w3);
15     NSLog(@"%x %x", ~(~w1 & ~w2), ~(~w1 | ~w2));
16     
17     [pool drain];
18     return 0;
19 }

最终输出结果:

a0a00000 ffffa0a0 5f5fa0a0

5f5f5f5f ffff ffff8888

0 a0a0 fffff7f7

a0a0a0a0 ffffa0a0

ffffa0a0 a0a00000


前三个NSLog乏善可陈,第四个要注意的是按位与运算符的优先级要高于按位或,因为会影响结果。第五个则展示了 ~(~a & ~b) 等于 a | b,~(~a | ~b)等于 a & b。

原创粉丝点击