深入了解C语言中的按位逻辑运算

了解C语言中的按位逻辑运算:

在C语言中,按位运算符是处理二进制数据的强大工具。按位运算符可以直接操控数据的每一位,这使得它们在处理低级别的数据操作、优化性能、嵌入式系统开发、加密算法等场景中变得尤为重要。在这篇博客中,我们将深入探讨几种常见的按位逻辑运算符,包括按位与 (AND)、按位或 (OR)、按位异或 (XOR)、按位取反 (NOT) 等,并展示如何在C语言中使用它们。

接下來我們就以宏定義的方式來説明:

以下是一些常见的按位逻辑运算符及其定义:

按位或 (OR): #define OR(a, b) ((a) | (b))

只要 a 或 b 的对应位有一个为 1,结果的对应位就为 1。否则为 0。
按位与 (AND): #define AND(a, b) ((a) & (b))

只有当 a 和 b 的对应位都为 1 时,结果的对应位才为 1。否则为 0。
按位异或 (XOR): #define XOR(a, b) ((a) ^ (b))

当 a 和 b 的对应位不同时,结果的对应位为 1;相同时,结果的对应位为 0。
按位或取反 (NOR): #define NOR(a, b) (~((a) | (b)))

对 OR 操作的结果取反。
按位与取反 (NAND): #define NAND(a, b) (~((a) & (b)))

对 AND 操作的结果取反。
按位异或取反 (NXOR): #define NXOR(a, b) (~((a) ^ (b)))

对 XOR 操作的结果取反。
按位取反 (NOT): #define NOT(a) (~a)

对 a 的每一位取反。
值取反 (TURN): #define TURN(a) (~a+1)

这通常用来获取一个数的补码。

示例代码

#include <stdio.h>
#include "LogicalOperator/Logical.h"

#define OR(a, b)   ((a) | (b))        // 按位逻辑或,两个位的值有一个为真结果为真
#define AND(a, b)  ((a) & (b))        // 按位逻辑与,两个位的值都为真结果为真
#define XOR(a, b)  ((a) ^ (b)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值