开发者

C语言中位运算符"|"的5种高级用法总结

开发者 https://www.devze.com 2023-04-12 10:56 出处:网络 作者: 知微之见
目录前言一、将两个字节合并成一个16位整数二、将一个字节的低4位和高4位交换三、将一个字节中的某些位置1四、将一个字节中的某些位置0五、将低位连续的0变为1小结前言
目录
  • 前言
  • 一、将两个字节合并成一个16位整数
  • 二、将一个字节的低4位和高4位交换
  • 三、将一个字节中的某些位置1
  • 四、将一个字节中的某些位置0
  • 五、将低位连续的0变为1
  • 小结

前言

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

C语言中位运算符"|"的5种高级用法总结

一、将两个字节合并成一个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;
}

C语言中位运算符"|"的5种高级用法总结

二、将一个字节的低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;
}

C语言中位运算符"|"的5种高级用法总结

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

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

C语言中位运算符"|"的5种高级用法总结

四、将一个字节中的某些位置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;
}

C语言中位运算符"|"的5种高级用法总结

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

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

C语言中位运算符"|"的5种高级用法总结

C语言中位运算符"|"的5种高级用法总结

小结

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

  • 1、将两个字节合并成一个16位整数
  • 2、将一个字节的低4位和高4位交换
  • 3、将一个字节中的某些位rIEDrr置1
  • 4、将一开发者_JAV培训个字节中的某些位置0
  • 5、将低位连续的0变为1

到此这篇关于C语言中位运算符"|"的5种高级用法总结的文章就介绍到rIEDrr这了,更多相关C语言位运算符内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号