C语言基础 - extern,移位与或非

本文详细介绍了Objective-C (OC) 中全局变量的使用方法,包括如何在不同文件间共享变量以及如何在方法中操作这些变量。同时,阐述了C语言中的基本逻辑运算符(与、或、非、异或)与位移运算符的功能和用法,通过实例演示了这些运算符的应用场景。

1,extern在OC中的使用

1),首先在合适的地方定义一个全局的变量,并在合适的地方赋值,赋值可以在声明时候赋值,也可以在定义的类中或者其它任何使用该全局变量的时候赋值和更改全局变量的值;


2),测试发现,全局变量必须定义在一个*.m文件中,定义在*.h文件中时候XCode会报错;

3),在需要使用全局变量的地方使用extern关键字声明一个和其它文件中定义的全局变量名字完全相同的变量, 这样就可以在本类中的方法中使用该全局变量了,并不需要导入定义该全局变量的头文件!   在这里也可以改变全局变量的值。



4),测试证明,在定义的地方和使用该全局变量的地方我们使用的是同一个变量。内存地址完全相同。第三次打印地址和前两个不同,是因为第三次两个NSString全局变量被重新赋值了,所以 ~



2,C中的与或非异或移位运算

1),与运算:&
两者都为1为1,否则为0
1&1=1,  1&0=0,  0&1=0,  0&0=0

2),或运算:|
两者都为0为0,否则为1
1|1 = 1,  1|0 = 1,  0|1 = 1, 0|0 = 0

3),非运算:~
1取0,0取1
~1 = 0, ~0 = 1
~(10001) = 01110

4),异或运算
两者相等为0,不等为1
1^1=0, 1^0=1, 0^1=1, 0^0=0

5)移位运算

移位运算符是将数据看成二进制数,对其进行向左或向右移动若干位的运算。位移位运算符分为左移和右移两种,均为双目运算符。第一运算对象是移位对象,第二个运算对象是所移的二进制位数。

移位时,移出的位数全部丢弃,移出的空位补入的数与左移还是右移花接木有关。       
如果是左移,则规定补入的数全部是0;        
如果是右移,还与被移位的数据是否带符号有关。
若是不带符号数,则补入的数全部为0;
若是带符号数,则补入的数全部等于原数的最左端位上的原数(即原符号位)。

位移位运算符的优先级如下:
   ·算术运算符 优先于 位移位运算符 优先于 关系运算符
   ·位移位运算符是同级别的,结合性是自左向右


<<,左移相当于被移位的数字乘以2的n次方;

>>,无符号左端补零,有符号,补的全部是原符号位


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值