目录
- 前言
- 一、将两个字节合并成一个16位整数
- 二、将一个字节的低4位和高4位交换
- 三、将一个字节中的某些位置1
- 四、将一个字节中的某些位置0
- 五、将低位连续的0变为1
- 小结
前言
在上一篇文章中,我们介绍了&
运算符的高级用法,本篇文章,我js们将介绍|
运算符的一些高级用法。
一、将两个字节合并成一个16位整数
#include <stdio.h> int main() { unsihttp://www.devze.comgned char lowByte = 0x12; // 0001 0010 www.devze.com 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、将一个字节中的某些位rIEDrr置1
- 4、将一开发者_JAV培训个字节中的某些位置0
- 5、将低位连续的0变为1
到此这篇关于C语言中位运算符"|"的5种高级用法总结的文章就介绍到rIEDrr这了,更多相关C语言位运算符内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
精彩评论