补码与求补运算
来源:互联网 发布:淘宝店铺专营类目 编辑:程序博客网 时间:2024/05/18 01:37
原码
原码表示法最高位为符号位,该位为0表示正数,1表示负数。其余位表示数的绝对值。反码
对于一个带符号的数来说,正数的反码与其原码相同;负数的反码为其原码除符号位以外的各位按位取反。反码常用来做求补码过程中的中间形式。 补码
正数的补码与其原码和反码相同;负数的补码是对它的原码除符号位以外各位取反,并在末位加1而得到,即为该数的补码加1。计算机内的数一般以补码形式表示。在补码中用(-128)D代替了(-0)D,注意:(-128)D没有相对应的原码和反码,(-128)D = (1000,0000)B。 求补运算
求补运算不考虑符号位,对它的原码各位取反,并在末位加1而得到。对一个数进行求补运算所得的是该数相反数的补码。有一个方法可以快速进行求补运算,从右边数起,直到第一个1(包括其自身)之间的位值不变,其余位求反就是结果。
原码表示法最高位为符号位,该位为0表示正数,1表示负数。其余位表示数的绝对值。
对于一个带符号的数来说,正数的反码与其原码相同;负数的反码为其原码除符号位以外的各位按位取反。反码常用来做求补码过程中的中间形式。
正数的补码与其原码和反码相同;负数的补码是对它的原码除符号位以外各位取反,并在末位加1而得到,即为该数的补码加1。计算机内的数一般以补码形式表示。在补码中用(-128)D代替了(-0)D,注意:(-128)D没有相对应的原码和反码,(-128)D = (1000,0000)B。
求补运算不考虑符号位,对它的原码各位取反,并在末位加1而得到。对一个数进行求补运算所得的是该数相反数的补码。有一个方法可以快速进行求补运算,从右边数起,直到第一个1(包括其自身)之间的位值不变,其余位求反就是结果。
附:分析2-1=1在计算机内的运算原理(假设机器字长为8位)
- 使用补码:2-1=2+(-1) (即将符号位交给1使1变成-1)
-1的原码:1000,0001
按位取反:1111,1110 (注意:最高位即符号位不参与取反运算)
-1的补码:1111,1111
2 : 0000,0010 补码
+ -1 : 1111,1111 补码
______________________
1,0000,0001 补码 -> 最高位溢出丢弃 -> 0000,0001 补码/原码 -> (1)D - 求补运算:2-1=2+(1的相反数) (即减去1等于加上1的相反数)
1的原码 :0000,0001
各位取反:1111,1110
末位加1 :1111,1111 (即为-1的补码,也就是1相反数的补码)
2 : 0000,0010 补码
+ -1 : 1111,1111 补码
______________________
1,0000,0001 补码 -> 最高位溢出丢弃 -> 0000,0001 补码/原码 -> (1)D
阅读全文
0 0
- 补码与求补运算
- 补码与求补运算
- 补码运算与溢出
- 补码与位运算
- 求反与求补
- 原码,补码,反码与位运算
- [计算机基础]补码、模与运算
- 补码运算
- 补码运算
- 位运算实现加减乘除、求补、比较、正负判断
- 位运算实现加减乘除、求补、比较、正负判断
- 位运算实现加减乘除、求补、比较、正负判断
- 按照补码定义求补码
- 为什么计算机中使用补码来表示与运算
- 为什么计算机中使用补码来表示与运算
- 计算机中的补码与java取反运算
- Java基本数据类型与位运算、原码&补码&反码
- 原码,反补,补码
- F(x) HDU
- 数据结构实验之图论七:驴友计划
- 【Scikit-Learn 中文文档】使用 scikit-learn 介绍机器学习
- Redis 存储List对象
- 3-appium-通过单元测试生成自动化测试报告
- 补码与求补运算
- 【Scikit-Learn 中文文档】机器学习: scikit-learn 中的设置以及预估对象
- Recicleview+OKhttp
- 第16章part2-智能指针
- 数据结构实验之图论八:欧拉回路
- 动态内存与智能指针
- Linux文件编程
- 【Scikit-Learn 中文文档】监督学习:从高维观察预测输出变量
- 算法分析与设计丨第十四周丨LeetCode(18)——Maximum Subarray(Medium)