黑马程序员技术交流社区

标题: 一道简单计算题弄懂原码、反码、补码的关系以及计算内..... [打印本页]

作者: 低调小邦    时间: 2014-8-22 08:17
标题: 一道简单计算题弄懂原码、反码、补码的关系以及计算内.....
本帖最后由 低调小邦 于 2014-8-22 09:15 编辑

    我是初学者,前不久才弄懂的这个问题,深感网上的资料解说各种高大上,看得我晕晕乎乎,不过总算是弄懂了,为了节约大家的时间也更容易理解,我想以42-43为例讲下我对原码、反码、补码以及计算机内部运算的心得,我尽量说简单点,欢迎各位大神指导批评。好了,进入正题:
1、*正数的原码、反码、补码都是等于其本身,42的二进制表达为0010 1010,那么其原码、反码、补码就是0010 1010;
2、*负数的原码等于其本身,-43的二进制表达式为1010 1011(*注意第一位是符号位0表示正的1表示负的);
     *负数的反码为原码除符号位按位取反,也就是1101 0100;
    *负数的补码为反码加1,也就是1101 0101。
3,、*计算机只对补码进行计算,我们只能输入或接受原码。那么42-43(也就是42+(-43)),(计算机中不存在减法运算,运算减法即加上一个负数)就是分别转换成补码后进行计算也就是0010 1010+1101 0101=1111 1111(这是补码),结果已经出来了我们现在要做的事把他换算成我们可以看到的原码。最高位是1 所以是负的那么他的反码就其补码减1,就是1111 1110(这是反码),原码也就是其反码除符号位取反,也就是1000 0001(原码)转换成十进制表示就是-1.
     好了,我说完了,打*号的地方是必须知道的知识点,希望能对和我一样的初学者有一定帮助,要是有疑问的地方大家可以相互探讨,谢谢!
作者: Kikyou    时间: 2014-8-22 08:20
mark,谢谢楼主分享
作者: 谢建平    时间: 2014-8-22 08:44
多谢    这个以前还真不是很清楚
作者: 李章敏    时间: 2014-8-22 09:26
总结的很好                                                                        




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2