-29-25如何用二进制计算
1个回答
展开全部
二进制中以最高有效位作为符号位,1 表示负数 0是正数。
现在假设 -29 和 -25 最高有效位为 8 位 ,通过正数的二进制 求补运算 取反+1 得到对应负数的二进制
29 的二进制 0001 1101 取反 11110 0010 +1 11110 0011
25 的二进制 0001 1001 取反 11110 0110 +1 11110 0111
得到两个负数的二进制后 -29-25 就变成了 (-29)+(-25) 的加法了
11110 0011
+ 11110 0111
= 11100 1010 这个就是结果了 -54的8位表示
(进位1)
无论-29和-25 用多少位来存储,算法都可如此,
比如你在C中声明了 int a=-29 在C中 int 似乎是 双字,也就是32 位,
29 的二进制变成 0000 0000 0000 0000 0000 0000 0001 1101
-29 就变成 1111 1111 1111 1111 1111 1111 1110 0011
看起来很长,但实质不变
现在假设 -29 和 -25 最高有效位为 8 位 ,通过正数的二进制 求补运算 取反+1 得到对应负数的二进制
29 的二进制 0001 1101 取反 11110 0010 +1 11110 0011
25 的二进制 0001 1001 取反 11110 0110 +1 11110 0111
得到两个负数的二进制后 -29-25 就变成了 (-29)+(-25) 的加法了
11110 0011
+ 11110 0111
= 11100 1010 这个就是结果了 -54的8位表示
(进位1)
无论-29和-25 用多少位来存储,算法都可如此,
比如你在C中声明了 int a=-29 在C中 int 似乎是 双字,也就是32 位,
29 的二进制变成 0000 0000 0000 0000 0000 0000 0001 1101
-29 就变成 1111 1111 1111 1111 1111 1111 1110 0011
看起来很长,但实质不变
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询