首页 > 其他分享 >逍遥自在学C语言 | 位运算符的基础用法

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

时间:2023-04-08 11:34:18浏览次数:39  
标签:表示 操作数 二进制 示例 逍遥自在 C语言 运算符 int

前言

一、人物简介

  • 第一位闪亮登场,有请今后会一直教我们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;
}

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;
}

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;
}

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;
}

5、左移运算符 (<<)

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

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

  • 示例代码

#include <stdio.h>

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

6、右移运算符 (>>)

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

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

  • 示例代码

#include <stdio.h>

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

小结

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

标签:表示,操作数,二进制,示例,逍遥自在,C语言,运算符,int
From: https://www.cnblogs.com/Wayne123/p/17298225.html

相关文章

  • c语言结构体
    #include<iostream>#include<string>usingnamespacestd;structm{inta;stringb;};intmain(void){inti,j;inta[10];charb[10];char*e,*f;mk[10];k[0]=k[1];//e=f;//b[0]=b[1];//a[0]......
  • 0-C语言与汇编语言的转换
    汇编语言入门四:打通C和汇编语言-知乎Win10下C语言转8086汇编-博客园:https://www.cnblogs.com/VxerLee/p/15264290.htmlLinux执行汇编程序在Linux下运行你的第一个汇编程序_linux怎么执行汇编代码_冷色调的夏天的博客-CSDN博客在线网站:CompilerExplorer强烈推荐一个在线网......
  • C语言 原码 反码 补码
    1.任何类型的数据在计算机中都是以二进制补码形式存储2.原码:最高位为符号位,用0表示正数,用1表示负数,其他位是相应数的2进制数反码:除符号位外按位取反,0变为1,1变为0补码:反码再加13.正数的原码反码补码都相同65的原码反码补码都是:0000000000000000000000000100000......
  • 学习C语言第六天
    一.多维数组元素的地址#include<stdio.h>intmain(){intarr[3][4]={{11,22,33,44},{12,13,15,16},{22,66,77,88}};inti;intj;for(i=0;i<3;i++){for(j=0;j<4;j++){printf("add:0x%p,data:%d",&arr[i......
  • 第一个C语言项目
    VS2022怎么写呢?1.创建一个项目——新建--空项目2.创建一个源文件——xxxx.c--源文件 xxxx.h--头文件   添加源文件,文件名后缀.c3.写代码——写出主函数(main函数)c语言是从主函数的第一行开始执行的4.编译代码——编译+链接+运行代码快捷键ctrl+f5......
  • C语言基础-结构体
    C语言基础-结构体结构体的现实意义现实世界里有很多事物是由不同的部分组合起来的。例如手机由屏幕、CPU、芯片、电池等多个部分组成。同时,对于每个组件如电池又由其他细小组件组成。结构体就是把这些组件组合在一起,进行统一的访问和管理。结构体可以理解成是对现实世界的抽象......
  • [每天例题]蓝桥杯C语言 成绩分析
    蓝桥杯C语言成绩分析题目    题目分析1.每个学生的得分都是一个0到100的整数。2.输出三行。第一行包含一个整数,表示最高分。第二行包含一个整数,表示最低分。第三行包含一个实数,四舍五入保留正好两位小数,表示平均分。思路分析1.使用数组进行成绩输入,声明为i......
  • Java 自增自减运算符和移位运算符介绍
    摘自JavaGuide(「Java学习+面试指南」一份涵盖大部分Java程序员所需要掌握的核心知识。准备Java面试,首选JavaGuide!)自增自减运算符在写代码的过程中,常见的一种情况是需要某个整数类型变量增加1或减少1,Java提供了一种特殊的运算符,用于这种表达式,叫做自增运算符(++)和自......
  • Shell基本运算符
    Shell和其他编程语言一样,支持多种运算符,包括:(1)算数运算符(2)关系运算符(3)布尔运算符(4)逻辑运算符(5)字符串运算符(6)文件测试运算符1.算数运算符原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如awk和exprexpr是一款表达式计算工具,使用它能完成表达式的求值操作。val=`expr......
  • 末尾运算符 ^ 和 范围运算符 ..
    调用表达式()使用括号()调用()或调用委托。以下示例演示如何在使用或不使用参数的情况下调用方法,以及调用委托:Action<int>display=s=>Console.WriteLine(s);varnumbers=newList<int>();numbers.Add(10);numbers.Add(17);display(numbers.Count);//output:2......