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

前言

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

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

一、人物简介

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

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

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

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

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

逍遥自在学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、将一个字节中的某些位置1

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

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

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

原文链接:https://www.cnblogs.com/Wayne123/p/17308307.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:逍遥自在学C语言 位运算符 “|” 的5种高级用法 - Python技术站

(0)
上一篇 2023年4月17日
下一篇 2023年4月17日

相关文章

  • C语言实现会员管理系统

    C语言实现会员管理系统 介绍 会员管理系统是一个在商业、电子商务等领域经常使用的系统。它可以更好地管理会员资料、会员等级、积分等信息,同时可以更好地识别VIP会员,提供更好的服务。在此,我们将介绍如何使用C语言来实现会员管理系统。 步骤 1. 定义会员结构体 首先,我们需要确定数据结构中会员的数据格式。为此,我们定义一个会员结构体来存储所有会员相关的信息,如…

    C 2023年5月23日
    00
  • visio中怎么插入公式? visio编辑公式的详细教程

    在 Visio 中插入公式,需要使用到 Visio 自带的公式编辑器 Equation Editor。接下来,我将为您详细介绍在 Visio 中如何插入和编辑公式的步骤。 步骤1:打开 Equation Editor 在 Visio 中将光标放在所要插入公式的位置,然后打开 Equation Editor 的方法有两种: 使用快捷键“Alt”+“=”,或者 …

    C 2023年5月22日
    00
  • 基于C语言实现图书管理信息系统设计

    基于C语言实现图书管理信息系统设计攻略 1.需求分析 在实现图书管理信息系统之前,我们需要对系统的需求进行分析,以确定系统应该满足哪些功能要求。例如: 管理员和用户登录/注销功能 添加/删除/修改图书信息功能 借阅/归还图书功能 查询图书/借阅记录功能 2.系统设计 在完成需求分析之后,我们需要根据需求设计系统架构,确定各个部分之间的关系。例如: 界面设计:…

    C 2023年5月23日
    00
  • C++实现关机功能详细代码

    实现关机功能的方法会因操作系统的不同而有所差异。在这里,我们以Windows操作系统为例,介绍使用C++实现关机功能的方法。 步骤 1. 引入头文件 首先需要引入Windows.h头文件,该头文件中包含的一些函数可以直接调用Windows API的功能。 #include <Windows.h> 2. 使用Windows API函数 Window…

    C 2023年5月24日
    00
  • C/C++ 活动预处理器详解

    下面是对C/C++预处理器的详细讲解: C/C++预处理器简介 C/C++预处理器是C/C++编译过程中的一个重要环节,其作用是在编译之前对源代码进行处理解析,可以理解为是一种对源代码进行预处理的程序。C/C++预处理器用于在编译之前对源代码进行简单的替换和操作,以便更好地对源代码进行编译和调试。 C/C++预处理器主要有以下几个作用: 头文件包含:将头文件…

    C 2023年5月23日
    00
  • C语言实现扫雷小游戏(扩展版可选择游戏难度)

    C语言实现扫雷小游戏(扩展版可选择游戏难度)攻略 整体思路 一、游戏界面及难度选择 在开始游戏前,首先需要让玩家选择游戏难度,根据不同的难度生成不同数量的地雷。可以使用 printf() 函数输出提示信息,再使用 scanf() 函数获取用户选择。 然后,显示游戏界面,包括地图、标记、已扫描的方块等信息,需要使用 printf() 函数将这些信息渲染到控制台…

    C 2023年5月22日
    00
  • c#实现几种数据库的大数据批量插入

    C#实现几种数据库的大数据批量插入攻略 在C#开发中,我们需要经常使用到数据库操作。如果遇到需要插入大数据量的情况,逐条插入会很慢,此时大数据批量插入就显得尤为重要。本文主要介绍如何使用C#实现MySQL和SqlServer两种数据库的大数据批量插入。 1. 大数据批量插入的原理 在进行大数据批量插入时, 我们不是直接将每条数据插入到数据库中,而是将多条数据…

    C 2023年5月22日
    00
  • JAVA实现简单抢红包算法(模拟真实抢红包)

    以下是详细的攻略: 思路 抢红包的本质是在给定的一段时间内,根据一定的规则将一定数量的钱随机分配给多个人。那么针对这个问题,我们可以想到以下的思路: 用户发送一个抢红包的请求,此时服务器会返回一个JSON格式的数据; 解析JSON数据,计算出当前用户分配到的红包金额; 将用户分配到的金额从红包总金额中减去,并保存到数据库中,便于后续查询。 代码实现 下面是使…

    C 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部