逍遥自在学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++程序字符型的实例讲解 什么是字符类型数据? 字符类型(char) 是 C++ 中的一种基本数据类型,用于存储单个字符,即 ASCII 码表中的一个字符。 在 C++ 中,字符类型数据可以用单引号 ‘ ‘ 来标识。 如何输出字符类型数据? 我们可以使用 cout 语句来输出字符类型数据。 #include <iostream> using n…

    C 2023年5月23日
    00
  • Matlab实现贪吃蛇小游戏的示例代码

    下面我将为你详细讲解使用MATLAB来实现一个贪吃蛇小游戏的完整攻略。 1. 准备工作 在实现贪吃蛇小游戏之前,我们需要准备以下工作: 安装MATLAB 确保你已经在你的电脑上安装了MATLAB。 了解MATLAB绘图函数 了解如何使用MATLAB绘图函数(如“plot”函数)来进行坐标点绘制。 了解MATLAB定时器 了解如何使用MATLAB定时器(“ti…

    C 2023年5月24日
    00
  • C++面向对象中构造函数使用详解

    C++面向对象中构造函数使用详解 在C++面向对象编程中,构造函数是一个非常重要的概念,它负责对象的初始化和内存分配等工作。本文将详细讲解C++面向对象中构造函数的使用,包括构造函数的声明、定义以及调用,以及构造函数的默认参数和重载等概念。 构造函数的声明与定义 构造函数的声明和普通函数的声明类似,都需要指定函数名、参数列表和返回类型。但是,构造函数没有返回…

    C 2023年5月22日
    00
  • 一文搞懂spring boot本地事务@Transactional参数

    下面是“一文搞懂spring boot本地事务@Transactional参数”的详细攻略: 目录 背景介绍 @Transactional参数介绍 示例说明 示例一:@Transactional使用方式 示例二:@Transactional注解入门 总结 背景介绍 在Spring Boot应用程序中,事务管理对数据的一致性和完整性十分重要。因此,Spring…

    C 2023年5月23日
    00
  • C++顺序表实现图书管理系统

    C++顺序表实现图书管理系统攻略 介绍 图书管理系统是一种常见的应用系统,其核心功能是对图书的信息进行管理和查询。顺序表是一种简单的数据结构,可用于实现图书管理系统的存储和操作。本攻略将详细介绍如何使用C++语言实现图书管理系统。 构建数据结构 首先,我们需要定义一个数据结构来存储图书信息,这里我们使用一个结构体来表示一本图书: struct Book { …

    C 2023年5月30日
    00
  • Java中空指针异常的几种解决方案

    下面我就给你讲解一下Java中空指针异常的几种解决方案。 1. 什么是空指针异常 空指针异常(NullPointerException)是Java中最常见的运行时异常之一,指的是试图在一个空对象上调用方法或访问属性。通常发生在程序员对一个没有初始化的对象引用调用方法或访问属性时。例如: String str = null; int length = str.…

    C 2023年5月23日
    00
  • C++实现算法两个数字相加详解

    C++实现算法两个数字相加详解 在C++中,实现两个数字相加的算法可以使用基本的加法运算符和关键字。以下是实现该算法的示例方法。 实现步骤 声明两个数字变量 a 和 b。 将这些变量的值设置为所需的数字。 使用加法运算符将这些数字相加,将结果存储在另一个变量中,命名为 result。 将结果打印到控制台。 下面是示例代码 int a = 20; int b …

    C 2023年5月23日
    00
  • C#/.Net开发chatGPT、openAI的简单步骤

    C#/.Net开发chatGPT、openAI的简单步骤: 在介绍开发chatGPT、openAI之前,我们需要先了解什么是chatGPT、openAI。 chatGPT是一种语言模型,可以被用于生成自然语言文本。它的原理是基于神经网络技术,通过学习大量的语言文本,建立一个预测模型,用于生成和上下文相关的自然语言文本。openAI则是一种人工智能编程平台,该…

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