当前位置: 首页 > news >正文

C语言里面 << 和 | 的运用

引言

本人在写代码的时候,经常需要将1和0进行拼凑起来,因为我们在现实生活中用的都是10进制的数字,所以我们常常会将1和0与10进制的形式联想起来,那么有什么方式,当我们得到”对”,即1,得到“错”即0。将这些东西按照二进制的形式表达出来呢?

在这里我做个比方:假如我得到了两个对,两个错,按照顺序排列就是“对对错错”,按照01的ascii码表示就是0x31 0x31 0x30 0x30,这样的话会浪费不必要的空间我要的是0x0C即0x1100,这样很短的东西就可以表示我想要的东西了。这个时候我就要用到c语言里面的 << 和 |。

接下来我来介绍下 << 和 | 的用法:

在这里我拿 0<<1|1 这段代码进行举例说明

  1. << 1 —— 把已有的位整体向左挪一格,最低位空出 0
    例:原有 0000 0001 变成 0000 0010

  2. | 1 —— 把新来的 1 按位或填到最低位
    例:0000 0010 | 10000 0011

  3. 若新比特是 0,就写 | 0,最低位保持 0

所以 byte = (byte << 1) | new_bit;


例子:

1️⃣ 假设你陆续收到这样 8 个比特(按顺序):

第1个 → 1  
第2个 → 0  
第3个 → 1  
第4个 → 0  
第5个 → 0  
第6个 → 0  
第7个 → 0  
第8个 → 0

2️⃣ 把它们拼成一个字节的过程:

byte = (byte << 1) | 新比特 一步一步来:

最后得到二进制:1010 0000
十六进制:0xA0
十进制:160

http://www.dtcms.com/a/605509.html

相关文章:

  • 开源 + 实时 + 无网络限制:Excalidraw 是流程图协作新选择
  • HTTP 会话 | 消息 | MIME类型 02
  • Web开发:什么是 HTTP 状态码?
  • idea启动项目配置环境变量(nacos 命名空间)
  • win8风格 网站模板免费的logo在线设计
  • 鸿蒙ArkUI基础组件开发详解
  • 温江建设网站家庭装修报价明细预算表
  • 目前最新同花顺金融股市数据爬取 JS逆向+node.js补浏览器环境
  • UniApp RenderJS中集成 Leaflet地图,突破APP跨端开发限制
  • 【MySQL】SQL菜鸟教程(一)
  • 网站开发net教程中国世界排名变化
  • InvivoCrown丨艾美捷代理(货号:SIM0073)BioSIM抗人ActivinA抗体(加托索单抗生物类似药)研究级精准靶向,赋能转化医学研究
  • 设计网站公司选泽y湖南岚鸿询 问10元建站
  • 节点内 cuda GPU 之间 P2P IPC 通信的硬件机制参考
  • 基于ThinkPHP实现动态ZIP压缩包的生成
  • 一个网站里面只放一个图片怎么做展示商品的网站怎么做
  • vivo国产数据库技术储备,突破大规模数据的存储与性能瓶颈
  • LLM之Agent(二十八)|AI音视频转笔记方法揭秘
  • 在Electron应用中控制剪贴板操-复制粘贴
  • IOS如何免费申请开发者证书(uniapp开发)
  • 网站里的动效怎么做国家重点项目建设网站
  • 《MySQL进阶(十一):集群架构与实践专题(一)》
  • github修改用户名和密码
  • 【数据结构入门手札】数据结构基础:从数据到抽象数据类型
  • Redis 大 Key 深度解析:危害、检测与治理实践
  • 最新电子商务购物商城系统源码 三端/H5+微信+安卓
  • MathPrompter:大幅提升大模型数学推理能力的创新方法
  • 如何在团队士气低落时重建信任与动力
  • SAP FICO应收毛利表分享
  • php音乐外链网站源码石家庄自助建站软件