二进制补码运算规则?二进制补码运算例题
- 前端设计
- 2023-08-13
- 81
本篇文章给大家谈谈二进制补码运算规则,以及二进制补码运算例题对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决...
本篇文章给大家谈谈二进制补码运算规则,以及二进制补码运算例题对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。
二进制变形补码计算
1、正数的补码表示:
正数的补码=原码
负数的补码={原码符号位不变}+{数值位按位取反后+1}or
={原码符号位不变}+{数值位从右边数第一个1及其右边的0保持不变,左边安位取反}
以十进制整数+97和-97为例:
+97原码=0110_0001b
+97补码=0110_0001b
-97原码=1110_0001b
-97补码=1001_1111b
2、纯小数的原码:
纯小数的原码如何得到呢?方法有很多,在这里提供一种较为便于笔算的方法。
以0.64为例,通过查阅可知其原码为0.1010_0011_1101_0111b。
操作方法:
将0.64*2^n得到X,其中n为预保留的小数点后位数(即认为n为小数之后的小数不重要),X为乘法结果的整数部分。
此处将n取16,得
X=41943d=1010_0011_1101_0111b
即0.64的二进制表示在左移了16位后为1010_0011_1101_0111b,因此可以认为0.64d=0.1010_0011_1101_0111b与查询结果一致。
再实验n取12,得
X=2621d=1010_0011_1101b即0.64d=0.1010_0011_1101b,在忽略12位小数之后的位数情况下,计算结果相同。
3、纯小数的补码:
纯小数的补码遵循的规则是:在得到小数的源码后,小数点前1位表示符号,从最低(右)位起,找到第一个“1”照写,之后“见1写0,见0写1”。
以-0.64为例,其原码为1.1010_0011_1101_0111b
则补码为:1.0101_1100_0010_1001b
当然在硬件语言如verilog中二进制表示时不可能带有小数点(事实上不知道哪里可以带小数点)。
4、一般带小数的补码
一般来说这种情况下先转为整数运算比较方便
-97.64为例,经查询其原码为1110_0001.1010_0011_1101_0111b
笔算过程:
-97.64*2^16=-6398935=1110_0001_1010_0011_1101_0111b,其中小数点在右数第16位,与查询结果一致。
则其补码为1001_1110_0101_1100_0010_1001b,在此采用负数的补码={原码符号位不变}+{数值位按位取反后+
二进制1101的补码怎么计算
同学们,大家好!我们应该都知道二进制数1101应该是一个负数,所以说二进制数1101的原码就应该是1101,负数二进制数1101的反码就应该是1010,最后求出负数二进制数1101的补码就应该是1011,同学们,你们大家都看明白了没有啊,再多看几遍
二进制数补码的范围公式
8位补码范围是-128至127.
根据补码的几条规定即可推出上述结论:
1若二进制每位全为0,则表示数0
2若最高位(即符号位)为0,表示正数
3若最高位为1,表示是负数,而该负数的绝对值是多少呢?将每个二进制位(包括符号位)取反加1,得到一个二进制数,将该数看成无符号数,其值就是上述负数的绝对值。
例如,二进制的10000000的最高位为1,所以它表示的是负数。是负的多少呢?我们将其八位全部取反,得到01111111,然后加1,得到10000000.将该数看作无符号数,值为128,故计算机中的10000000表示的是-128。【关于这一点要死记硬背了,可以参考下面列出的对比数记忆】
最高位(即符号位)为1的8位有符号数有128个,故可表示128个负数;最高位为0的8位有符号数有128个,但全0的那个表示数0,所以总共只能表示127个正整数。
-7用2的补码的方法计算
-7的二进制补码表示为:
A
01111000
B
01111001
C
11111000
D
11111001
-7的二进制补码表示为:
A
01111000
B
01111001
C
11111000
D
11111001
-7的二进制补码表示为:
A
01111000
B
01111001
C
11111000
D
11111001
-7的二进制补码表示为:
A
01111000
B
01111001
C
11111000
D
11111001
二进制补码运算怎么确定有效位数
两个二进制数补码相加时,数值位有效数字的位数
就是该数的真值的有效数字的位数,也就是该数绝对值有效数字的位数。
二进制补码的表示范围有一个规律,就是n位二进制补码的表示范围为-2^(n-1)~+2^(n-1)-1。
补码:补码是基于反码的变动,有两种情况,如果是正数的补码,就跟原码反码都相同。如果是负数的补码,则在其反码的基础上,再加1。
二进制负小数的补码
使用十进制数系统,每个数字位置(或列)表示(从右到左读取数字):单位(即10^0),数十(即10^1),数百(即10^2)等。
对于无符号二进制数,基数为2,因此每个位置变为(再次从右到左读):1(即2^0),2(即2^1),4(即2^2)等
在有符号的二进制补码中,最高有效位(MSB)变为负值。因此,它表示数字符号:负数为“1”,正数为“0”。
固定点(分数)系统保持的位数值不变。列值遵循与以前相同的模式,基数(2)为幂,但功率为负
END,本文到此结束,如果可以帮助到大家,还望关注本站哦!
本文链接:http://www.xinin56.com/qianduan/4544.html