C语言中的操作符

在C语言中,有大量的操作符用于调控程序,从而使程序更加凝练简洁。操作符按照其功能特点可分为算术操作符、移位操作符、位操作符、赋值操作符、单目操作符、关系操作符、逻辑操作符、条件操作符。

一、算术操作符

简单的算术运算符 +、-、*、/、%均为算术操作符,其用法简单易懂。下以“+”用法为例用以简单介绍,加法运算符用于加法运算,使其两侧的值相加。例如,语句:

printf("%d",4+20);

打印出来的值是24而不是表达式20+4。相加的值(运算对象)可以是变量,也可以是常量。在运算时,计算机或查看加法运算符右侧的两个变量(或常量),把它们相加,然后把和赋给左侧的变量。

减法运算与加法运算用法类似,是使其两侧的值相减。+和-都被称为二元运算符,即这些运算符需要两个运算对象才能完成操作。乘法运算类似。

c使用/来表示除法,/左侧的值为被除数,右侧的值为除数。整数除法和浮点数除法不同,浮点数除法的结果是浮点数,整数除法的结果是整数。整数是没有小数部分的数,整型除法中实际结果的小数部分将会被丢弃。此时需注意,整数除法会截断计算结果的小数部分,而不会四舍五入结果。混合整数和浮点数计算结果是浮点数。实际上,计算机不能真正用浮点数除以整数,编译器会把两个运算对象转换成相同的类型。

对于%来说,则要求两个数必须为整型。

二、移位操作符

移位操作符有左移<< 和 右移>> 两种,移位移的是二进制位。在计算机中,内存存的为补码,任何一个二进制数都有原码、反码和补码。整数的原码、反码和补码都一样,负数的反码是除符号位其余各位按位取反,补码为在反码的基础上加1。

左移操作,左边位直接丢弃,右边补零,被移位数保持不变(前提是原数赋移位后的值),左移有乘2的效果。例如10的补码为

00000000 00000000 00000000 00001010  左移一位后变为

00000000 00000000 00000000 00010100  其对应的十进制数为20 。

右移有算术右移和逻辑右移两种情况,算术右移为右边丢弃,左位不符号位(正数补0,负数补1);逻辑右移为右边丢弃,左边补0 。右移操作取决于编译器,大部分编译器采用算术右移。这里要注意移位运算符不能移位负数位。

三、位操作符

位操作符有按位异或^、按位与&、按位或 | 。按位异或两同等位相同时取0,不同时去1;按位与两同等位都为1时取1,只要有任何一方为0就取0;按位或两同等位同为0时取0,只要有任何一方为1就取1 。

注:a^a=0;   a^0=a

四、赋值操作符

赋值操作符有=、+=、-=

a=a+10可以写成为a+=10

五、单目操作符

!逻辑反操作(真变假,假变真);  - 负值 ; +正值  ;&取地址;  sizeof  操作数的类型长度;

 ~对一个二进制数进行按位取反(符号位参与取反)

六、关系操作符

关系操作符有> 、>=、< 、<=、!=、==(相等)

七、逻辑操作符

&&(与)、||(或)

a逻辑b(a、b可能为代数运算)

在与运算中,若a为假,则b不必再算;在或运算中,若a为真,则b不必再算

八、条件操作符

exp1?(exp2:exp3)

例如:b=a>5?3:-3

意思为若a大于5,则b为3,否则为-3.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值