C语言自学—运算符与表达式(2.2.13-2.2.17)

发布于:2022-12-23 ⋅ 阅读:(390) ⋅ 点赞:(0)

五:逻辑运算符

运算符 含义 举例 结果
逻辑“非” !3 0
&& 逻辑“与” 3&&0 0
|| 逻辑“或” 3||0 1

优先级:!>&&?>||

结合性:自左至右;

设:int a=5;float b=3.5;
计算:!a(0)
     !a<b(1)
     a&&b(1)
     !a&&b(0)
     !a&&!b(0)
     !(a&&b)(0)

六:位运算符:

运算符 含义 举例 结果
& 换位与 3&5 1
| 按位或 3|5 7
^ 按位异或 3^5 6
~ 按位取反 ~3 -4
<< 左移 3<<1 6
>> 右移

3>>1 1
#include<stdio.h>
int main()
{
     printf("%d\n",3&5);
     printf("%d\n",3|5);
     printf("%d\n",3^5);
     printf("%d\n",~3);
     printf("%d\n",3<<1);
     printf("%d\n",3>>1);
}
     

1.按位与:按位与“&”运算符,将两个运算量对应的二进制逐一按位进行逻辑与运算。每一位二进制数都要参与运算,包括符号位。
2.按位或:按位或“|”运算符,将两个运算量对应的二进制逐一按位进行运算。每一位二进制都要参与运算,包括符号位。
3.按位异或:按位异或“^”运算符,将两个对应的二进制运算符逐一按位进行逻辑异或运算。每一位二进制数都要参与运算,包括符号位。异或运算的规则为:相异为真,相同为假
4.按位取反:按位取反“~”运算符是一元运算符,其结果是将运算量的每个二进制位逐一取反,每一位二进制都要参与运算,包括符号位。

5.左移:左移运算符是一个二元运算符,需要两个运算量参与,且两个必须是整数。如a<<n,其意义是将a按照二进制位向左移动n位,最低的n位用0补齐
6.右移:右移运算符与左移类似都是二元运算符,目的是将运算量按二进制位右移。右移一位时,最低位舍弃。最高位补齐的数值,需要根据运算量的类型决定。如果运算量是一个有符号整数则补其符号位,如果是无符号的整数则最高补为0。

七:自增自减运算符

++i,--i                     在使用i之前,先使i的值加/减1,先增减,后运算

i++,i--                     在使用i之后,使i的值加/减1,先运算,后加减

#include<stdio.h>
int main ()
{
    int i=3;
	printf("%d",++i);
	return 0;
}
//
#include<stdio.h>
int main()
{
	int i=3; 
	printf("%d",i++);
	return 0;
}
//
#include<stdio.h>
int main()
{
	int j,i=2;
	j=i++;
	printf("j=%d,i=%d",j,i);
	return 0;
}


网站公告

今日签到

点亮在社区的每一天
去签到