基础的除和取余
#include "stdio.h"
int main()
{int a=3;
int b=4;
int c=a%b;
int d=a/b;
float e=a/b;
printf("%d %d %lf\n",c,d,e);
}
3 0 0.000000
Press any key to continue
右移操作符和左移操作符
#include "stdio.h"
int main()
{int a=3;
int b=a<<1;
int c=a>>1;
printf("%d %d",b,c);
}
6 1Press any key to continue
为什么会输出6和1呢因为这是16进制的算法
3是011 而左移和右移分别是 110 和001 所以就是6和1
右移分为算术移位和逻辑移位 逻辑要补原符号位,而算术不要
左移是左边丢弃,右边补零
按位取反
#include <stdio.h>//不通过另一个变量,交换ab位置
int main()
{
int a=3;
int b=4;
a=a^b;
b=a^b;
a=a^b;
a=~a;
printf("%d %d",a,b);
}
交换位置之后按位取反a,得出答案-5,这是为什么呢?
按位取反是32位2进制取反,而取的反是补码,%d输出是原码,所以还要化出原码。
#include "stdio.h"
int main()
{int a=1;
int b=2;
int c=(a>b,a+b,a*b);//输出最后的值
printf("%d",c);}
2Press any key to continue
逗号运算输出最后一个算术的结果