逍遥自在学C语言 | 位运算符的基础用法

yizhihongxing

前言

逍遥自在学C语言 | 位运算符的基础用法

一、人物简介

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

逍遥自在学C语言 | 位运算符的基础用法

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

逍遥自在学C语言 | 位运算符的基础用法

二、构成和表达方式

  • 位运算符是一组用于在二进制数之间进行操作的运算符
运算符 名称 示例
& 位与 a && b
| 位或 a | b
^ 位异或 a ^ b
~ 位取反 ~a
<< 二进制左移 a << 2
>> 二进制右移 a >> 2

三、位运算符的应用

1、位与运算符 (&)

  • 位与运算符用符号 & 表示。

  • 如果两个操作数的对应位都为1,则位与运算的结果为1,否则结果为0

  • 示例代码

#include <stdio.h>

int main() {
  int a = 13; //二进制表示为0b1101
  int b = 11; //二进制表示为0b1011
  int c = a & b;
  printf("%d\n", c); //输出结果为9,二进制表示为0b1001
  return 0;
}

逍遥自在学C语言 | 位运算符的基础用法

2、位或运算符 (|)

  • 位或运算符用符号 | 表示。

  • 如果两个操作数的对应位中至少有一个为1,则位或运算的结果为1,否则结果为0。

  • 示例代码

#include <stdio.h>

int main() {
  int a = 13; //二进制表示为0b1101
  int b = 11; //二进制表示为0b1011
  int c = a | b;
  printf("%d\n", c); //输出结果为15,二进制表示为0b1111
  return 0;
}

逍遥自在学C语言 | 位运算符的基础用法

3、位异或运算符 (^)

  • 位异或运算符用符号 ^ 表示

  • 如果两个操作数的对应位不同,则位异或运算的结果为1,否则结果为0

  • 示例代码

#include <stdio.h>
int main() {
  int a = 13; //二进制表示为0b1101
  int b = 11; //二进制表示为0b1011
  int c = a ^ b;
  printf("%d\n", c); //输出结果为6,二进制表示为0b0110
  return 0;
}

逍遥自在学C语言 | 位运算符的基础用法

4、位取反运算符 (~)

  • 位取反运算符用符号 ~ 表示

  • 它会对操作数的每个二进制位取反,即0变成1,1变成0

  • 示例代码

#include <stdio.h>

int main() {
  int a = 13; //二进制表示为0b1101
  int b = ~a;
  printf("%d\n", b); //输出结果为-14,二进制表示为0b11111111111111111111111111110010
  return 0;
}

逍遥自在学C语言 | 位运算符的基础用法

5、左移运算符 (<<)

  • 左移运算符用符号 << 表示

  • 它将操作数的所有二进制位向左移动指定的位数,并在低位填充0

  • 示例代码

#include <stdio.h>

int main() {
  int a = 13; //二进制表示为0b1101
  int b = a << 2;
  printf("%d\n", b); //输出结果为52,二进制表示为0b110100
  return 0;
}

逍遥自在学C语言 | 位运算符的基础用法

6、右移运算符 (>>)

  • 右移运算符用符号 >> 表示。

  • 它将操作数的所有二进制位向右移动指定的位数,并在高位填充0或1(具体取决于操作数的符号)

  • 示例代码

#include <stdio.h>

int main() {
  int a = 13; //二进制表示为0b1101
  int b = a >> 2;
  printf("%d\n", b); //输出结果为3,二进制表示为0b0011
  return 0;
}

逍遥自在学C语言 | 位运算符的基础用法

小结

通过本文的讲解,我们学会了6种位运算符的基础用法,在接下来的文章中,将会继续介绍这6种位运算符的高级用法。

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

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

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

相关文章

  • C++中的RTTI机制详解

    C++中的RTTI机制详解 RTTI(Run-Time Type Identification)是C++语言的一种机制,它提供了一种在运行时获取类型信息的方式,使得程序可以在运行时确定一个对象的类型,并且可以调用该类型的方法。 RTTI的类型 C++语言中的RTTI有两种类型,分别是动态类型dynamic_cast和尝试类型typeid。 动态类型 动态类型…

    C 2023年5月22日
    00
  • 基于C语言实现泛型编程详解

    基于C语言实现泛型编程详解 在C语言中实现泛型编程是一件比较困难的事情,因为C语言本身不支持泛型。但是,有一种叫做泛型指针的技术,在C语言中实现泛型编程成为了可能。 泛型指针 泛型指针是一种特殊的指针类型,它可以指向任何类型的数据。在C语言中,使用void*关键字定义泛型指针。 void* ptr; 泛型指针可以将数据类型定义为一个指针类型。例如: int …

    C 2023年5月23日
    00
  • java jni调用c函数实例分享(java调用c函数)

    下面我将为您详细讲解“Java JNI调用C函数实例分享(Java调用C函数)”的攻略。 什么是JNI? JNI全称为Java Native Interface,即Java本地接口。它是一个开发者提供的桥梁,用于将Java虚拟机(JVM)连接到应用程序中的非Java代码(如C语言、C++等)。使用JNI可以使Java程序调用C语言等非java语言编写的代码或…

    C 2023年5月23日
    00
  • 基于matlab MFCC+GMM的安全事件声学检测系统

    让我来详细讲解“基于matlab MFCC+GMM的安全事件声学检测系统”的完整攻略。 系统描述 这是一个基于matlab MFCC+GMM的安全事件声学检测系统,用于监听环境中的声音信号并根据特征对其进行分类,以检测是否存在安全事件。系统主要包含以下三个模块: 数据预处理模块:对原始音频进行文件读取、降噪、滤波、抽取特征等预处理 特征提取模块:使用MFCC…

    C 2023年5月24日
    00
  • C++ static详解,类中的static用法说明

    C++ static详解 一、static static 是 C++ 中的关键字,用于表示静态的意思。它可以修饰类的成员变量和成员函数,以及全局变量和函数,具体用法如下: 1.1 类的静态成员变量 类的静态成员变量是指在类中声明的以 static 关键字开头的成员变量。它是归属于类的,而不是归属于类的对象。因此,在创建类的对象时,并没有为静态成员变量分配存储…

    C 2023年5月22日
    00
  • C++中四种对象生存期和作用域以及static的用法总结分析

    C++中四种对象生存期和作用域以及static的用法总结分析 在C++中,对象是程序中的基本组成单位之一。对象有不同的生存期和作用域,对于理解C++程序的运行过程至关重要。static是一个关键字,它有多种用途。本文将详细介绍C++中四种对象生存期和作用域以及static的用法。 对象的生存期和作用域 C++中的对象根据生存期和作用域的不同可以分为以下四类:…

    C 2023年5月22日
    00
  • 基于一致性hash算法 C++语言的实现详解

    下面是 “基于一致性Hash算法C++语言的实现详解” 的攻略。 简介 一致性Hash算法是分布式系统中常用的一种负载均衡算法。C++ 语言是一种高效的编程语言,有着广泛的应用。本篇攻略将通过分析一致性Hash算法的实现,详细讲解如何在C++语言中实现这一算法,并给出两个示例说明。 一致性Hash算法的实现 步骤一:将服务器节点映射到一个环上 一致性Hash…

    C 2023年5月22日
    00
  • 你知道如何自定义sort函数中的比较函数

    当使用sort函数对序列进行排序时,要根据具体情况实现不同的比较函数,以便sort函数能够正确地排序。在C++中,sort默认使用std::less作为比较函数,用于比较两个元素的大小关系。如果需要自定义比较函数,需要重新实现一个函数作为sort的第三个参数传入。 比较函数需要满足以下条件:1. 以两个参数为输入,返回一个bool类型的值,true表示第一个…

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