C语言逻辑操作符和(移)位操作符详解及运算符优先级

本文详细介绍了C语言中的逻辑操作符(&&,||,!)和位操作符(&amp;,|,^,~,<<,>>),包括它们的用途、规则以及在交换两个数时的实战应用。还讨论了运算符的优先级和结合性,以帮助读者更好地理解和掌握这些概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一.操作符分类

二.逻辑操作符

三:位操作符(重点+难点)

1.按位与:

2.按位或  |

3.异或  ^

4.取反  ~

笔试题:不能创建临时变量(第三个变量),实现两个数的交换。

四:移位操作符

1.左移操作符<<

2.右移操作符

五:运算符优先级

1.优先级

2.结合性

3.运算符优先级表


在讲解操作符之前需要了解进制转换和原码、补码、反码的知识。

一.操作符分类

在C语言中,操作符可以分为以下几类:

  1. 算术操作符:用于执行基本的数学运算,如加(+)、减(-)、乘(*)、除(/)、求模(%)

  2. 关系操作符:用于比较两个值,如等于(==)、不等于(!=)、大于(>)、小于(<)、大于等于(>=)、小于等于(<=)。

  3. 逻辑操作符:用于连接布尔型表达式,如逻辑与(&&)、逻辑或(||)、逻辑非(!)。

  4. 位操作符:用于处理二进制位,如位与(&)、位或(|)、位异或(^)、位取反(~)、左移(<<)、右移(>>)。

  5. 赋值操作符:用于将表达式的值赋给变量,如简单赋值(=)、复合赋值(+=,-=,*=,/=,%=,&=,|=,^=,>>=,<<=)。

  6. 条件操作符(三元操作符):用于执行条件表达式,如条件 ? 表达式1 : 表达式2。

  7. 逗号操作符:用于将多个表达式连接成一个表达式,逗号分隔的表达式从左到右依次计算。

  8. 指针操作符:用于取内容(*)和取地址(&)。

  9. 求字节数操作符:sizeof。

  10. 类型转换操作符:用于显式类型转换(typecast)。

  11. 增量操作符:用于递增(++)或递减(--),可以放在变量前也可以放在变量后。

由于其中大多数操作符过于简单,本章不再介绍,本章主要讲解其中比较难的逻辑操作符和(移)位操作符。

二.逻辑操作符

逻辑运算符是来连接表达式并且判断该语句的“真假”。

1.  &&:它是“与”运算符,表示两个语句都为真时返回‘1’。
2、||:它是“或”运算符,表示两个语句一个为真时就返回‘1’.
3、!:它是“非”运算符,表示该语句为真时返回‘0’,为假时返回‘1’,就是与该语句的真假相反。
这里的‘1’是真的意思,而‘0’是假的意思。
C语言中定义非零的数为真,0为假,系统默认返回‘1’或‘0’。
在这里需要注意逻辑运算符的优先 级,这个很重要:! > && > ||

代码示例:

#include <stdio.h>
 
int main() {
   int a = 1;
   int b = 2;
   int c = 0;
   if (a && b)
   {
       printf("左右两边为真\n");
   }
   if(a||c)
   {
       printf("左右两边有一边为真");
   }
   if(!c)
   {
       printf("c为假");
   
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值