news 2026/10/23 4:03:05

【c++】c语言入门到c++使用高手: c语言入门之位运算(一)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【c++】c语言入门到c++使用高手: c语言入门之位运算(一)

第十一章 位运算

第一节 位的概念以及位运算符介绍

1. 位的概念

  • 一个int型数据是占4个字节内存,一个char型数据占用1个字节内存

  • 一个字节是由八个位组成,是由二进制位,最左边称为最高位,最右边称为最低位

  • 每一个二进制位的值是0或者1(二进制数只有0,1,两个数字,没有其他数字): 00000000-11111111 ==> 0-255

intabcd;//占四个字节// int能表示的最大二进制数是多少呢?11111111,111111111,11111111,11111111=2^32-1

2. 位运算符介绍

  • 针对二进制位进行运算的
位运算符含义
&按位与
|按位或
^按位异或
~取反
<<左移
>>右移
  • 按位与运算符&:参加运算的两个运算量,如果两个相应的位都为1,则该位的结果为1,否则为0,跟逻辑运算符&&有点像
0 & 0 = 0 1 & 0 = 0 0 & 1 = 0 1 & 1 = 1 unsigned int tempvalue= 38 & 22 100110 // 38 010110 // 22 ------------- 000110 //6
  • 按位或运算符|:参加运算的两个运算量,如果两个相应的位有一个为1,则位的结果为1,全零则为0,跟逻辑运算符||有点像
0 & 0 = 0 1 & 0 = 1 0 & 1 = 1 1 & 1 = 1 unsigned int tempvalue= 38 | 22 100110 // 38 010110 // 22 ------------- 110110 // 54
  • 按位异或运算符^:参加运算的两个运算符,如果两个相应的位相同,则结果为0,不同则为1
0 ^ 0 = 0 1 ^ 0 = 1 0 ^ 1 = 1 1 ^ 1 = 0 unsigned int tempvalue= 38 ^ 22 100110 // 38 010110 // 22 ------------- 110000 // 48 0111 1010 //跟1做异或,能够翻转某些位, 如果想保留某些位,就跟0做异或
  • 按位取反运算符~:单目运算符,只有一个运算量,对一个数字按位取反
~0 = 1 ~1 = 0 unsigned int tempvalue= ^38 00000000 00000000 00000000 00100110 -------------------------------------- 11111111 11111111 11111111 11011001
  • 左移运算符<<:将一个数的二进制位左移若干位,右侧补0,每左移一位,都相当于原来的10进制数乘以2
unsigned int tempvalue= 15 << 1; // 30 01111 ------ 11110 unsigned int tempvalue= 15 << 2; // 60 001111 ------ 111100
  • 右移运算符>>:将一个数的二进制位右移若干位,左侧补0,每右移一位,都相当于原来的10进制数除以2,
    超出最低位的被舍弃
unsigned int tempvalue= 15 >> 1; // 7 1111 ---- 0111 unsigned int tempvalue= 15 >> 2; // 3 1111 ---- 0011
  • 位运算符和赋值运算符可以结合使用,比如&=, |=, ^=, >>=, <<=, 就是复合运算符
a &= b // a = a & b int a = 35; int b = 22; a &= b;// a = a & b ==> a = 2 100011 010110 ------ 000010
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/23 4:02:02

Linux服务器远程管理实战:SSH连接、加固、传输与批量自动化

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/23 4:00:56

低噪声带隙基准BGR设计实战:从噪声预算到斩波稳定化

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/23 4:00:55

video-subtitle-extractor字幕提取实战:抽帧、OCR与参数调优全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/23 4:00:52

一文搞懂电机控制中的磁链:原理、观测与FOC实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/23 4:00:32

Windows 11跳过联网与微软账户的四种可靠方法

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/23 4:00:31

数据中心网络的链路层机制:拓扑、负载均衡与排查实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华