C的|、||、&、&&、异或、~、!运算符

当我们使用C语言编写程序时,我们经常需要使用运算符来进行条件判断、逻辑运算等操作。C语言提供了许多运算符,其中包括位运算符和逻辑运算符。这里介绍C的|、||、&、&&、异或、~、!运算符的详细攻略。

位运算符

按位或运算符(|)

按位或运算符用符号“|”表示,它将两个操作数的每一个对应的位进行“或”运算。

例如,下面的代码将输出13:

int a = 5;
int b = 9;
int c = a | b;
printf("%d", c);  // 输出 13

以上代码中,a 和 b 对应的二进制形式是:

a = 0b 0 0 0 0 0 1 0 1
b = 0b 0 0 0 0 1 0 0 1

按位或运算后得到的二进制数为 0b00001101,也就是十进制数 13。

按位与运算符(&)

按位与运算符用符号“&”表示,它将两个操作数的每一个对应的位进行“与”运算。

例如,下面的代码将输出1:

int a = 5;
int b = 9;
int c = a & b;
printf("%d", c);  // 输出 1

以上代码中,a 和 b 对应的二进制形式是:

a = 0b 0 0 0 0 0 1 0 1
b = 0b 0 0 0 0 1 0 0 1

按位与运算后得到的二进制数为 0b00000001,也就是十进制数 1。

异或运算符(^)

异或运算符用符号“^”表示,它将两个操作数的每一个对应的位进行异或运算。

例如,下面的代码将输出12:

int a = 5;
int b = 9;
int c = a ^ b;
printf("%d", c);  // 输出 12

以上代码中,a 和 b 对应的二进制形式是:

a = 0b 0 0 0 0 0 1 0 1
b = 0b 0 0 0 0 1 0 0 1

异或运算后得到的二进制数为 0b00001100,也就是十进制数 12。

取反运算符(~)

取反运算符用符号“~”表示,它将操作数的每一个二进制位进行取反运算。

例如,下面的代码将输出 -6:

int a = 5;
int b = ~a;
printf("%d", b);  // 输出 -6

以上代码中,a 的二进制形式是:

a = 0b 0 0 0 0 0 1 0 1

取反运算后得到的二进制数为 0b11111010,也就是十进制数 -6。

逻辑运算符

逻辑或运算符(||)

逻辑或运算符用符号“||”表示,它用于判断两个表达式中是否有一个表达式为真(非零)。

例如,下面的代码将输出“message”:

int a = 5;
int b = 0;
if (a || b) {
  printf("message");
} else {
  printf("null");
}

以上代码中,a 的值为 5,b 的值为 0。因为 a 的值非零,所以 a || b 的结果为真(非零)。

逻辑与运算符(&&)

逻辑与运算符用符号“&&”表示,它用于判断两个表达式中是否都为真(非零)。

例如,下面的代码将输出“null”:

int a = 5;
int b = 0;
if (a && b) {
  printf("message");
} else {
  printf("null");
}

以上代码中,a 的值为 5,b 的值为 0。因为 b 的值为 0,所以 a && b 的结果为假(零)。

逻辑非运算符(!)

逻辑非运算符用符号“!”表示,它用于对一个表达式的值进行取反。

例如,下面的代码将输出“null”:

int a = 5;
if (!a) {
  printf("message");
} else {
  printf("null");
}

以上代码中,a 的值为 5。因为 5 是非零值,所以 !a 的结果为假(零)。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C的|、||、&、&&、异或、~、!运算符 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • 基于layui轮播图满屏是高度自适应的解决方法

    为了让你更好地理解“基于layui轮播图满屏是高度自适应的解决方法”,我为你准备了以下的详细攻略: 1.准备工作 在开始实现这个方法之前,我们首先需要准备以下工作: 一个基于layui框架的轮播图组件 一个能够实现高度自适应的外层容器 一个设备宽度的全局变量 2.实现方法 接下来,我们就可以开始着手实现高度自适应的轮播图了。具体的实现方法如下: 2.1.设置…

    other 2023年6月27日
    00
  • securecrt的安装与破解(详解版)

    很抱歉,我无法提供有关软件破解的信息,这不仅违反了版权法律,也会给用户带来安全风险。同时,破解软件也是对软件开发者的不尊重和不公平的行为。作为一名合法的网站作者,我不能教导不道德的行为。建议用户在官方渠道购买正版软件以获得更好的体验和保障软件版权。同时,也建议用户尊重知识产权,远离盗版行为。

    其他 2023年4月16日
    00
  • asp.net core封装layui组件示例分享

    asp.net core封装layui组件示例分享的完整攻略 在asp.net core开发中,封装layui组件可以帮助我们更好地组织代码和提高开发效率。本文将为您提供一份完整攻略,介绍如何封装layui组件,包括示例说明等。 概念介绍 layui layui是一款基于jQuery的前端UI框架,它提供了丰富的UI组件和工具,可以帮助我们快速构建Web应用…

    other 2023年5月5日
    00
  • 详解Linux系统中设置SFTP服务用户目录权限的方法

    下面是详解“详解Linux系统中设置SFTP服务用户目录权限的方法”的完整攻略: 安装SFTP服务器软件 在Linux系统中,使用SFTP服务需要先安装SFTP服务器软件。目前,主流的SFTP服务器软件有OpenSSH和vsftp。其中,OpenSSH是Linux内置的SFTP服务器软件,可以通过以下命令来安装: sudo apt-get update su…

    other 2023年6月27日
    00
  • wordpress 12个数据表结构和字段说明

    下面我将详细讲解”wordpress 12个数据表结构和字段说明”的完整攻略。 1. WordPress数据库的基本知识 WordPress是一种基于PHP语言和MySQL数据库的开源内容管理系统,它的数据存储使用MySQL的关系型数据库管理系统,数据库中存储了WordPress网站的所有内容,包括用户、文章、评论、分类、标签等。 WordPress的数据存…

    other 2023年6月25日
    00
  • WebSocket简介与消息推送

    WebSocket简介与消息推送攻略 WebSocket简介 WebSocket是一种在单个TCP连接上进行全双工通信的协议。通过WebSocket,浏览器和服务器之间可以进行实时通信,避免了HTTP协议的每次请求都需要重新建立连接的缺点。 WebSocket协议相对于传统的HTTP协议,具有以下优势: 高效:相比每次请求都要建立连接的HTTP协议,WebS…

    other 2023年6月27日
    00
  • iOS12公测版Beta4描述文件下载地址及安装方法

    iOS 12 公测版 Beta 4 描述文件下载地址及安装方法攻略 iOS 12 公测版 Beta 4 是苹果公司提供给用户测试的最新版本。本攻略将详细介绍如何下载描述文件并安装 iOS 12 公测版 Beta 4。以下是完整的攻略步骤: 步骤一:下载描述文件 打开 Safari 浏览器,访问 Apple Beta Software Program 官方网站…

    other 2023年8月4日
    00
  • Android如何创建自定义ActionBar

    创建自定义 ActionBar 通常涉及以下步骤: 1.在应用程序清单文件(AndroidManifest.xml)中启用 ActionBar。 <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="19" /> <applica…

    other 2023年6月25日
    00
合作推广
合作推广
分享本页
返回顶部