验证码: 看不清楚,换一张 查询 注册会员,免验证
  • {{ basic.site_slogan }}
  • 打开微信扫一扫,
    您还可以在这里找到我们哟

    关注我们

C语言中位运算符"|"的高级用法有哪些

阅读:1006 来源:乙速云 作者:代码code

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("合并结果为 %04xn", result);       // 输出: 0x3412
    return 0;
}

C语言中位运算符

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

#include 

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

C语言中位运算符

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

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

C语言中位运算符

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

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

C语言中位运算符

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

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

C语言中位运算符

C语言中位运算符

分享到:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: hlamps#outlook.com (#换成@)。
相关文章
{{ v.title }}
{{ v.description||(cleanHtml(v.content)).substr(0,100)+'···' }}
你可能感兴趣
推荐阅读 更多>