开发者社区> 问答> 正文

-29-25如何用二进制计算

-29-25如何用二进制计算

展开
收起
知与谁同 2018-07-19 15:26:46 2707 0
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
    看起来很长,但实质不变
    2019-07-17 22:57:36
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
图计算优化技术探索 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载