A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 低调小邦 于 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.
     好了,我说完了,打*号的地方是必须知道的知识点,希望能对和我一样的初学者有一定帮助,要是有疑问的地方大家可以相互探讨,谢谢!

3 个回复

倒序浏览
mark,谢谢楼主分享
回复 使用道具 举报
多谢    这个以前还真不是很清楚
回复 使用道具 举报
总结的很好                                                                        
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马