您当前的位置:首页动态正文

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

2023-04-12 04:43:14 博客园


(资料图)

前言

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

一、人物简介第一位闪亮登场,有请今后会一直教我们C语言的老师 —— 自在。第二位上场的是和我们一起学习的小白程序猿 —— 逍遥。二、将两个字节合并成一个16位整数
#include 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 int main() {    unsigned char data = 0xab;   // 1010 1011    data = (data << 4) | (data >> 4);  // 1011 1010    printf("交换结果为 %02x\n", data);      // 输出:0xba    return 0;}
四、将一个字节中的某些位置1
#include int main() {    int x;    printf("请输入一个数:");    scanf("%d", &x);    printf("\n第4位置1后,这个数变为 %d\n", x | 0b1000);     return 0;}
五、将一个字节中的某些位置0
#include 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 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

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

关键词:

上一篇:
下一篇:

“如果发现本网站发布的资讯影响到您的版权,可以联系本站!同时欢迎来本站投稿!

动态

关注