十进制(6-9)怎样用补码进行二进制运算?
展开全部
首先,介绍一下补码的编码规则:正数的补码等于原码,负数的补码是对其原码逐位取反,但符号位除外;然后整个数加1。
对两个带符号数+6和+9进行减法运算
+6的补码的字节表示是:0000 0110B //正数的补码等于原码
+9的补码的字节表示是:0000 1001B //正数的补码等于原码
0 0 0 0 0 1 1 0 B
- 0 0 0 0 1 0 0 1 B
_______________________
(1)1 1 1 1 1 1 0 1 //产生借位
因为运算结果为一个字节数据(8个二进制位),最高位产生的借位丢失。即最左边的1(括号括起来的那个1)不要它 最后得 1111 1101
由于是补码运算,所以结果也是补码
将补码变成原码 逆过程哦 因为最高位是1,表示负,所以整个数减1 得 1111 1100 除了符号位 取反 1000 0011 因为1000 0011等于-3
且6-9 = -3 所以运算结果是正确的
对两个带符号数+6和+9进行减法运算
+6的补码的字节表示是:0000 0110B //正数的补码等于原码
+9的补码的字节表示是:0000 1001B //正数的补码等于原码
0 0 0 0 0 1 1 0 B
- 0 0 0 0 1 0 0 1 B
_______________________
(1)1 1 1 1 1 1 0 1 //产生借位
因为运算结果为一个字节数据(8个二进制位),最高位产生的借位丢失。即最左边的1(括号括起来的那个1)不要它 最后得 1111 1101
由于是补码运算,所以结果也是补码
将补码变成原码 逆过程哦 因为最高位是1,表示负,所以整个数减1 得 1111 1100 除了符号位 取反 1000 0011 因为1000 0011等于-3
且6-9 = -3 所以运算结果是正确的
展开全部
正数减一个数等于加这个数的补码
6(D)=0 0110(B);9=1 1001(B)
1 1001(B)补码=1 0111(B)
所以表示方法为0 0110+1 0111=1 1101
则原码为1 0010+0 0001=1 0011(B),结果即-3
6(D)=0 0110(B);9=1 1001(B)
1 1001(B)补码=1 0111(B)
所以表示方法为0 0110+1 0111=1 1101
则原码为1 0010+0 0001=1 0011(B),结果即-3
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数据在内存中以补码形式存储,运算也以补码形式运算,运算结果也是补码。
最高位是符号位,正数时是0,负数时是1.以int类型2字节,16位二进制来算。
6(正数),补码=原码,即 00000110
-9(负数),原码 = 10001001 补码=11110111
相加如下(缝2进1,结果写0):
------ 0000110
--加--11110111
--------------------------
--得-- 11111101
所以结果是 11111101 ,化为原码,因为最高位是1,代表负数,所以原码为 10000011转化成十进制就是 -3
最高位是符号位,正数时是0,负数时是1.以int类型2字节,16位二进制来算。
6(正数),补码=原码,即 00000110
-9(负数),原码 = 10001001 补码=11110111
相加如下(缝2进1,结果写0):
------ 0000110
--加--11110111
--------------------------
--得-- 11111101
所以结果是 11111101 ,化为原码,因为最高位是1,代表负数,所以原码为 10000011转化成十进制就是 -3
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询