逍遥自在学C语言 位运算符 "|" 的5种高级用法

2023-05-10,,

前言

在上一篇文章中,我们介绍了&运算符的高级用法,本篇文章,我们将介绍| 运算符的一些高级用法。

一、人物简介

第一位闪亮登场,有请今后会一直教我们C语言的老师 —— 自在。

第二位上场的是和我们一起学习的小白程序猿 —— 逍遥。

二、将两个字节合并成一个16位整数

#include <stdio.h>

int main()
{
unsigned char lowByte = 0x12; // 0001 0010
unsigned char highByte = 0x34; // 0011 0100
unsigned short result = (highByte << 8) | lowByte; // 0011 0100 0001 0010
printf("合并结果为 %04x\n", result); // 输出: 0x3412
return 0;
}

三、将一个字节的低4位和高4位交换

#include <stdio.h>

int main()
{
unsigned char data = 0xab; // 1010 1011
data = (data << 4) | (data >> 4); // 1011 1010
printf("交换结果为 %02x\n", data); // 输出:0xba
return 0;
}

四、将一个字节中的某些位置1

#include <stdio.h>
int main()
{
int x;
printf("请输入一个数:");
scanf("%d", &x);
printf("\n第4位置1后,这个数变为 %d\n", x | 0b1000);
return 0;
}

五、将一个字节中的某些位置0

#include <stdio.h>
int main() {
int x;
int a = 0b1000;
printf("请输入一个数:");
scanf("%d", &x);
printf("\n第4位置0后,这个数变为 %d\n", (x | a) - a );
return 0;
}

六、将低位连续的0变为1

#include <stdio.h>
int main()
{
int x;
printf("请输入一个数:");
scanf("%d", &x);
printf("\n低位连续的0变为1,这个数变为%d\n", x | (x-1) );
return 0;
}

小结

通过这篇文章,我们学会了用位运算符|的5种高级用法

​ 1、将两个字节合并成一个16位整数

​ 2、将一个字节的低4位和高4位交换

​ 3、将一个字节中的某些位置1

​ 4、将一个字节中的某些位置0

​ 5、将低位连续的0变为1

在下一篇文章中,我们将介绍位运算符^的一些高级用法。

逍遥自在学C语言 位运算符 "|" 的5种高级用法的相关教程结束。

《逍遥自在学C语言 位运算符 "|" 的5种高级用法.doc》

下载本文的Word格式文档,以方便收藏与打印。