C语言基础(三)运算符

算数运算符

= 赋值运算符 如 int a = 12;将12赋值给a

== 相等 如 int a = 10;int b = 20; bool bFlag = a == b;若相等,则表达式 a == b返回Ture 否则返回False

!= 不等于  如int a = 10;int b = 20; bool bFlag = a != b;如上

> 大于 如int a = 10;int b = 20; bool bFlag = a > b;

< 小于 如int a = 10;int b = 20; bool bFlag = a < b;

>= 大于等于 如int a = 10;int b = 20; bool bFlag = a >= b;

<= 小于等于 如int a = 10;int b = 20; bool bFlag = a <= b;

+加 如 int a = 10; int b =10; int c = a+b;

-减 如 int a = 10; int b =10; int c = a-b;

*乘 如 int a = 10; int b =10; int c = a*b;

/除 如 int a = 10; int b =10; int c = a/b; (不能除0,会导致异常)

%取余 如 int a = 10; int b =4; int c = a%b; c = 4 取余数

++自增 a++ 先赋值再加一 ++a 先加一再赋值

如 int a = 1;

int b =1;

printf("a++:%d\n++b:%d",a++,++b); --> a=1,b=2

printf("\na:%d\nb:%d",a,b);-->a=2 b=2

--自减 

如 int a = 1;

int b =1;

printf("a--:%d\n--b:%d",a--,--b);-->a=1,b=0

printf("\na:%d\nb:%d",a,b);-->a=0,b=0

+=加等于 如 int a = 10; a += 5(a=a+5)

-=减等于 如 int a = 10; a -= 5(a=a-5)

*=乘等于 如 int a = 10; a *= 5(a=a*5)

/=除等于 如 int a = 10; a /= 5(a=a/5)

%=取余等于  如 int a = 10; a %= 5(a=a%5)

sizeof 尺寸运算符

int a;

short b;

printf("a=%d\r\n b=%d",sizeof(a),sizeof(b));

结果 a=4 b=2

位运算符 (运用于二进制数据下)

& 位与运算符 (计算器 AND)       

如      10101010 &                   

         11110101                           

结果  10100000

int nRes = 0b10101010 & 0b11110101(0b表此数据为二进制数据)

相同位置数字一样则结果位置也为同样数字 ,否则为0

| 位或运算符 

如  10101010  |

      11110100

      11111110 才算0

int nRes = 0b10101010 | 0b11110100

相同位置有一个1便是1,只有俩0

~ 位非运算符

如  ~10101010  

结果 01010101

^ 异与运算符(同样的位置都是0或1时,结果相同位置为0,)

10101010  ^

11110100

01011110

int nRes = ~0b10101010

异或加密:两个值不相同,则异或结果为1;两个值相同,异或结果为0。所以根据异或的运算规则,在二进制中,相同为0,不同为1。

char szA = 'A';

char szB = 'B';

char szT = szA ^ szB;

printf("%X %c %c",szT,(szA^szT),(szB^szT))

结果 3 B A

<< 左移运算符

00000001 << 5 

00100000  

>> 右移运算符

10010000 >>3  当符号位为1时,右移的每一位都补1

11110010

00010000 >>3 当符号位为0时,右移的每一位都补0

00000010 

逻辑运算符

&& 逻辑与

bool bFlag = (10 >5) && (10>6)    Ture

|| 逻辑或 

bool bFlag = (10 >5) ||(10>12)    Ture 一个为ture则结果就为ture

!逻辑非

bool bFlag = ture;

bFlag = ! ture;

结果为 false
?:

int a = x < y ? c : d 

如果x

如果x

运用ture或者false时,需要添加头文件stdbool.h

你可能感兴趣的:(c语言,开发语言)