正,反,补 码的概念
(1)源码:
所谓的源码就是二进制定点数的表示,即源码的符号位在最高位,“0” 表示正,“1” 表示负数,数值部分按一般的二进制形式,例如:
文章图片
在二进制中,使用的二进制位数越多,所能表示的数的范围就越大,如:
文章图片
这两个数就无法用8位的二进制表示。
用原码表示一个定点数最简单,如果用8位二进制存放一个定点数的原码,能表示的数值范围为:
文章图片
一般来说,如果用n位二进制来表示一个定点数的原码,则能表示整数值的范围为:
文章图片
但是注意是,采用原码表示后,两个异号数不能直接相加,或者说,两个同号数不能直接相减。
(2)反码:
反码表示法规定,整数的反码和源码相同;负数的反码是对该数的原码除符号位外其它各位取反(即将“0” 变为 “1”,“1” 变为 “0”)如:
文章图片
容易验证,一个数的反码的反码还是原码本身
(3)补码:
补码表示法规定:整数的补码和原码相同;负数的补码是在该书的反码的最后(即最右边)的一位加上1,例如: 【正,反,补码的概念】
文章图片
由此可得:一个数的补码的补码还是原码本身;
引入补码以后,计算机中的加减运算都可以用加法来实现,并且,两数补码之“和”等于两数“和”的补码。在采用补码运算时,符号位也当作一位二进制数一起参与运算
推荐阅读
- Java|Java基础——数组
- 人工智能|干货!人体姿态估计与运动预测
- java简介|Java是什么(Java能用来干什么?)
- Java|规范的打印日志
- Linux|109 个实用 shell 脚本
- 程序员|【高级Java架构师系统学习】毕业一年萌新的Java大厂面经,最新整理
- Spring注解驱动第十讲--@Autowired使用
- SqlServer|sql server的UPDLOCK、HOLDLOCK试验
- jvm|【JVM】JVM08(java内存模型解析[JMM])
- 技术|为参加2021年蓝桥杯Java软件开发大学B组细心整理常见基础知识、搜索和常用算法解析例题(持续更新...)