C语言算术运算符与位运算符

1.算术操作符:+,-,*,%,/

前两个不用多说,* 即是乘号,%是求余(取模)运算,注意:%两侧操作数需均为整数;若除数与被除数符号不同,则结果符号与被除数保持一致。如-14/3=-2;14/-3=2;/是求商运算,注意:若/的除数与被除数均为整数将执行舍位(即舍去小数中任何部分)如14/3=4;若除数与被除数符号不同,则结果符号与被除数保持一致。如-14/3=-4;14/-3=4;若运算中有一个为实型,则结果为双精度实型。如6/3.0=2.0;此外除数不能为0,若除数为0,编译器无法计算出结果,程序将在运行时崩溃。

2.位运算符(只能作用于整形操作数,及只能作用于带符号或无符号的char,short,int,long类型):&  按位与(AND),|  按位或(OR),^  按位异或(XOR),<<   左移,>>  右移,~  按位取反。

面对位运算符首先应将操作数转化为二进制数,然后再进行操作。如a=01010001,b=10001100,则a&b=00000000;a|b=11011101;a^b=11011101(相同为零,不同为一);~a=10101110;

按位与&经常用于屏蔽某些二进制位,如n=n&0177,其中0177是八进制转化为二进制即01111111;所以该语句把n中除了7个低二进制数外其他各位均置零。

按位或 | 常用于将某些二进制置一,如n=n|077,其中077是八进制转化为二进制即00111111,则该语句将n后六位均置一。

常见此类情况还有n=n&~077,则将后六位设置为零。

对于<<,>>(操作数必须为整型)  。<<即二进制数向左移位,移除左边界的位丢失,右边空出来的用零补齐。>>有两种移位方式,一是无符号数执行逻辑移位(左边移入位用0填充),另一个是有符号数(依赖编译器决定移位方式)可能是算术移位(即左侧用符号位0或1填充),也可能是逻辑移位。注意a<<5,指a左移5位,而非5左移a位。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值