算数操作符
符号: + - * / %
符号说明:
- —>分别用于整数和小数(浮点数)的加法
- —>分别用于整数和小数(浮点数)的减法
- —>分别用于整数和小数(浮点数)的乘法
/–>分别用于整数和小数(浮点数)的除法
%–>用于返回两个整数的余数== 注意==:
1.+、-、*、/这四个运算符均可用整数及浮点数的运算。 2.当使用/运算符时,如果两个操作数均为整形,那么执行整数除法,运算结果也为整形;如果两个操作数至少一个为浮点数,那么执行浮点数运算,运算结果为浮点数。 3.%运算符只能用于两个整数相除,返回余数。
2.移位操作符
符号:<< >>
符号说明:
<< —> 左移运算符,用于将整数左移指定位数
>> —> 右移运算符,用于将整数右移指定位数
移位规则:
<< (左移运算符):不论算术移位还是逻辑移位,均将左边的
数舍弃,右边空缺位补0 (左边丢弃,右边补0)
>> (右移运算符):当进行逻辑移位时,右边位丢弃,左边空缺位补0(右边丢弃,左边补0)
当进行算术移位时,右边位丢弃,左边位补原数的符号位(右边丢弃,左边补符号位)。
举例说明:
、zhozho```
注意:
1.移位操作不改变原值。
2.移位时不能移负数。
位操作符
符号:& | ^
符号说明:
& —> 按位与 (有0出0)
| —> 按位或 (有1出1)
^ —>`` 按位异或 (相同为0,相异为1)
举例说明:
&(按位与)
int a = -3;
int b = -5;
int c =a&b;
因为计算机中存的是二进制的补码,所以将a,b的补码按位与之后再转
化为原码可得c
一个数&1可得该数二进制最低位是0还是1
int a = 2;
int b = -5;
int c = a&1; //结果为0
int d = b&1; //结果为1
若想将一个数的二进制第N位置为1,则可将1左移N-1位后与该数二进制做或运算,即(1<<(N-1))|该数二进制。
如想将2的二进制第七位置位1,则将1左移7-1位后或上2的二进制。
若想将一个数的二进制第N位 置为0,则可将1左移N-1位后按位取反,再与该数二进制做与运算,即(~(<<(N-1)))& 该数二进制。
如想将9的二进制第4位 置为0,则将1左移4-1位后按位取反再与上9的二进制。
|(按位或):
int a = -3;
int b = -5;
int c = a|b;
因为计算机中存的是二进制的补码,所以将a,b的补码按位或之后再转化为原码可得c
^ (按位异或):
int a = -3;
int b = -5;
int c = a^b;
因为计算机中存的是二进制的补码,所以将a,b的补码按位或之后再转化为原码可得c
注意:
1.位操作符的操作数必须为整数。
2.计算机中存的是二进制的补码,所以进行的是补码运算,再转化成原码可得最终结果 。
3.一个数的二进制&1可得该数二进制最低位是0还是1.
4.若想将一个数的二进制第N位 置为0,则可将1左移N-1位后按位取反,再与该数二进制做与运算,即(~(1<<(N-1)))& 该数二进制。
5.若想将一个数的二进制第N位 置为1, 则可将1左移N-1位后与该数二进制做或运算,即(1<<(N-1)) | 该数二进制。
尾声
最后希望大家有问题可以提出 互相学习 互相进步
一起吃透C语言 喜欢的大家可以点赞加关注 持续更新喔!!!