算术操作符:
+(加) -(减) *(乘) /(除) %(取模,取余数)
以下代码讲下除以和取模:
#include<stdio.h>
int main()
{
int a = 5 / 2; //除以=商,结果2
int b = 5 % 2;//取模得到的是余数,1
printf("%d\n", a);
printf("%d\n", b);
return 0;
}
位移操作符:
>> (右移) <<(左移)
移位操作符取得是2进制位,代码如下:
#include<stdio.h>
int main()
{
//移(2进制)位操作符
//<<左移操作符 >>右移位操作符
int a = 1;
//整型1占4个字节=32bit 位
//1的2进制序列是怎么表达的 01
//00000000 00000000 00000000 00000001
int b=a << 1;//a向左移1
//00000000 00000000 00000000 00000010(左边丢弃,右边补0)
printf("%d\n", b); //变成了10, 10这个2进制序列如果翻译成十进制序列的话:1x2的一次方 结果就是2
printf("%d\n", a);//此时的a没变还是原来的1,当对a左移右移操作时,a是不变的,除非移完后赋给a
//假设左移2位,00000000 00000000 00000000 00000100 1x2的2次方 结果4
return 0;
}
逻辑操作符
位操作符:
(2进制)位操作
&(按位与) |(按位或) ^(按位异或)
&(按位与)以下代码:
#include<stdio.h>
int main()
{
//(2进制)位操作
// &(按位与)与是并且的意思
// | (按位或)
// ^ (按位异或)
int a = 3; // a b (2进制)位操作
int b = 5; // 3 5 转换的2进制是 011 101
int c = a & b; //2进制怎么转化呢? :假设1111: 二进制: 1 1