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日

相关文章

  • unity3d游戏地图生成器mapmagicworldgeneratorv1.9.1

    Unity3D游戏地图生成器MapMagicWorldGeneratorv1.9.1 MapMagicWorldGenerator是一个用于Unity3D游戏开发的强大工具箱,它可以生成高质量、高度可配置的游戏地图。这个工具箱可以用来制作普通地图、材料地图、生化、城市、森林等场景,并可以自定义细节。该工具已更新至v1.9.1版本。 功能特性 MapMagic…

    其他 2023年3月29日
    00
  • delphi Sender和Tag的用法1

    Delphi中Sender和Tag的用法 在 Delphi 中,Sender 和 Tag 是常用于事件处理中的两个参数。它们能够帮助我们更好的处理事件,并实现更加灵活和可维护的代码。 Sender 参数的作用 Sender 参数常常用于在一个事件处理函数中,确定是哪个控件触发了该事件。在事件被触发时,Delphi 框架会自动将触发事件的控件对象传递给 Sen…

    其他 2023年3月28日
    00
  • Python paramiko使用方法代码汇总

    Python paramiko使用方法代码汇总 什么是paramiko? paramiko 是一个用于进行远程服务器操作的 Python 库,它采用了传统的SSH协议。通过 paramiko 可以实现 SSH2 协议的认证、加密、SSH 会话和 SFTP 协议等。 install 可以直接使用pip命令安装: pip install paramiko 使用方…

    other 2023年6月27日
    00
  • excel2013怎么插入控件?excel office2013插入窗体、日历等控件教程

    OK,下面是详细的攻略。 Excel 2013 插入控件教程 Excel 2013 提供了丰富的控件,可以在工作表中添加各种交互式元素,让工作表更加强大和易于使用。本教程将介绍如何插入控件,如窗体、文本框、标签、按钮、复选框、下拉列表框和日期选择器等,以及如何为这些控件设置属性和事件。 步骤一:打开开发者工具栏 要使用控件,首先需要打开 Excel 的开发者…

    other 2023年6月27日
    00
  • 深入浅析vue全局环境变量和模式

    下面是深入浅析Vue全局环境变量和模式的攻略。 什么是Vue全局环境变量 在Vue应用程序中,我们可能要使用一些状态,这些状态在应用程序中需要被许多组件访问。这些状态可以通过引入一个全局变量来实现。在Vue中,这个全局变量被称为Vue.prototype。 我们可以通过Vue.prototype在Vue应用程序中添加全局变量。下面是一个示例,演示如何将一个新…

    other 2023年6月27日
    00
  • mybatis中insert返回值为1,但数据库却没有数据

    MyBatis中insert返回值为1,但数据库却没有数据的解决方法攻略 有时候在使用MyBatis进行数据插入操作时,可能会遇到返回值为1,但实际数据库中却没有插入数据的情况。以下是解决这个问题的完整攻略: 检查数据库连接是否正常:首先,确保数据库连接正常,可以通过连接数据库的其他方式进行验证。 检查数据源配置:确认MyBatis的数据源配置是否正确,包括…

    other 2023年10月18日
    00
  • 苹果iOS13.6/iPadOS13.6开发者预览Beta2更新内容及支持机型分享

    苹果iOS13.6/iPadOS13.6开发者预览Beta2更新内容及支持机型分享 如果您是苹果iOS或iPadOS的开发者,则有一些好消息。苹果公司最近发布了iOS13.6/iPadOS13.6的第二个Beta版本,其中包含了许多新特性和改进。在这篇文章中,我们将讨论这个Beta版本的最新内容,并分享一些新版本支持的机型。 更新内容 以下是iOS13.6/…

    other 2023年6月26日
    00
  • linux终端打印命令使用介绍

    以下是“Linux终端打印命令使用介绍的完整攻略”的标准markdown格式文本,其中包含两个示例: Linux终端打印命令使用介绍 在Linux终端中,我们经常需要使用打印命令来输出文本或者文件内容。打印命令可以帮助我们快速查看文件内容、调试程序等。以下是Linux终端打印命令使用介绍的完整攻略。 1. 打印文本 要在Linux终端中打印文本,我们可以使用…

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