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

进制转换,原码,反码,补码,二进制位运算及应用

进制转换

2B(0--1),8O(0--7),10D,16H(0——9,A——F) 

8位二进制数,左边高位,右边低位

2,8,16  -> 10进制整数,小数
  • 整数:从后往前,依次(每位)* 进制(2,8,16) ^ (0++),最后求和
  • 小数:从前往后,依次(从小数点后每位)* 进制(2,8,16) ^ (-1- -),最后求和
  • 最后整体求和
引用
10  ->2,8,16进制整数,小数
  • 整数:不断除进制(2,8,16),直到商为0,反向读取余数
  • 小数:不断乘进制(2,8,16),向下取整,正向读取,写在小数点后,每次执行都获得一个精度
  • 和整数部分同时输出
引用
2 -> 8,16进制
  • 2 -> 8从后往前,每3位合为一个二进制位
  • 2 -> 16从后往前,每4位合为一个二进制位
8,16  -> 2进制
  • 8  -> 2每一个八进制位转换为3个二进制
  • 16  -> 2每一个十六进制位转换为4个二进制
8 ->16进制
  • 通过2/10进制间接转换

原码,反码,补码

原码:对于signed的整数,最高位是符号位:正(0)负(1),其余为是数值的绝对值,对于加减运算操作不友好,需要通过反码或补码来完成

反码:正数和原码一致,负数为十进制形式的绝对值按位取反,符号位不变,表示-128(对于8位时)

补码:正数和原码一致,负数为反码 + 1

有效范围

unsigned无符号8位,0——255

signed有符号8位,- 128——127

每增一位,都是前一位的2倍

二进制运算

计算机运算都是以二进制补码形式

加法:

5 + 1 都是正数,正数原反补都一致,对应位相加,

0 + 0 = 0, 0 + 1 / 1 + 0 = 1, 1 + 1 = 2->转为2进制 = 10(进一位), 1 + 1 + 1 = 3->转为2进制 = 11(进一位)

减法:

5 - 1 = 5 + (-1),5的补码和原码一致0101,-1的补码计算得到1111,

因此相加=10100,忽略最高位,为4

位运算

我们直到计算机都是以二进制形式存储,因为对位的操作,比普通运算符要快许多,因此尽量使用位运算代替普通运算符

位运算符
引用
常见位操作
引用
引用
常见的位十进制操作 
乘除法
a << 1 ≡ a ∗ 2
a >> 1 ≡ a / 2 
交换整形变量值
 void swap(int &a,int &b){a ^= b;b ^= a;a ^= b;}
判断奇数偶数
a & 1
对负数取绝对值
 ~ a + 1

http://www.lryc.cn/news/442093.html

相关文章:

  • node.js居家养老服务系统—计算机毕业设计源码35247
  • OpenHarmony(鸿蒙南向开发)——小型系统芯片移植指南(二)
  • Live800:从心出发,以情动人:构建深度客户服务文化
  • 分布式事务一致性:本地消息表设计与实践
  • 深入浅出Docker
  • Flink 与 Kubernetes (K8s)、YARN 和 Mesos集成对比
  • Python 集合的魔法:解锁高效数据处理的秘密
  • Go必知必会:构建复杂数据模型的基石
  • 大数据Flink(一百一十七):Flink SQL的窗口操作
  • 【西电电装实习】6. 手装无人机的蓝牙断连debug
  • AIGC实战之如何构建出更好的大模型RAG系统
  • 【数据结构-差分】力扣1589. 所有排列中的最大和
  • Spark部署文档
  • Broadcast:Android中实现组件及进程间通信
  • 5分钟熟练上手ES的具体使用
  • lambda 自调用递归
  • mac中git操作账号的删除
  • AI Agent的20个趋势洞察
  • Spring Boot-定时任务问题
  • 从混乱到清晰!借助Kimi掌握螺旋型论文结构的秘诀!
  • 中国电子学会202306青少年软件编程(Python)等级考试试卷(二级)真题
  • 样本册3D翻页电子版和印刷版同时拥有是一种什么体验
  • 8586 括号匹配检验
  • 案例精选 | 聚铭助力河北省某市公安局筑牢网络安全防护屏障
  • VBS学习2:问题解决(文件中含义中文运行报错或者中文乱码)
  • 首次揭秘行业内幕!范罗士、希喂、有哈、小米、安德迈宠物空气净化器实测分析
  • 1267:【例9.11】01背包问题(信奥一本通)
  • 信息化时代下的高标准农田灌区:变革与机遇并存
  • 【系统架构设计师-2013年真题】案例分析-答案及详解
  • git merge如何忽略部分路径