+ - * / %
加减乘除我这边就不多介绍了 ,我这里主要来介绍一下%
%(取模)余数
怎么来使用呢?
s= 6%4
s为多少呢?s等于6取模4 也就是6除以4还余多少,我们这里的s=2;
>> <<
移位操作符分为两种,左移和右移,移位移位 移的是什么呢?其实就是二进制位。
<< 左移
例如:a等于1,s等于a向左移动1位。s的值位多少呢?
int a = 1;
int s = a << 1;
printf("%d" ,s);
思路:我们移位移动的就是二进制位,我们来看整型a的值为1,转换为二进制为00000000000000000000000000000001(整型4字节 1字节=8位 所以这里是32位二进制数)
00000000000000000000000000000001
00000000000000000000000000000010
所以s的值为2^1=2
>>右移 同理
& ^ |
位操作符同上,也是对于二进制为来使用的
int a = 3;
int b = 5;
int c = a & b;
int d = a | b;
int e = a ^ b;
printf("%d", c);
printf("%d ", d);
printf("%d ", e);
思路:c的值为多少呢?
我们要先把a的值3转换为二进制 ……011
b的值5转换为二进制……101
&操作符二进制位相同为1不同为0 ……001
|操作符只要有一方为真结果就位1,否则为0 ……111
^操作符相同为0不同为1 ……110
所以c得到001 转换为10进制数也就是1.
所以d得到111 转换为10进制数也就是7.
所以e得到110 转换为10进制数也就是6.
= += -= /= *= &= ^= |= <<= >>=
例如
//赋值操作符
int a = 1;
a = 3; //赋值
a = a + 10; ==( a += 10;)
单目操作符和双目操作符以及三目操作符
单目操作符有
! (逻辑反操作)、- (负值)、+(正值)、&(取地址)、sizeof (操作数的类型长度)、~ (对一个数的二进制按位取反)、--(前置,后置--)、++(前置,后置++)、*(间接访问操作符)。
int a = 1;
int b = 2;
int s = a + b; //这里的+号就是一个双目操作符,也就是有两个操作数
那么三目操作符也就是三个操作数。
原文:https://blog.51cto.com/15100290/2622349