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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 小石姐姐 于 2018-2-1 15:31 编辑

计算机中的编码
+7: 0000 0111
-7:
        因为二进制没有负数,为了表示负数,人为规定,数字的第一位为符号位,
        如果第1位是0,则表示,这个数是正数,如果第1位是1,则表示这个数是负数.
-->
        +7: 0000 0111
        -7: 1000 0111        
        这种编码,在计算机中被称之为: 源码
        
        问题:
                我们自然界中,+7 + -7 == 0.
                --> 计算源码:
                        +7: 0000 0111
                        // +
                        -7: 1000 0111        
                        // =
                                1000 1110  --> -14   //问题出现了,+7加-7是不等于0的,逻辑上,这样是不正确的
                                
        解决:
                为了,解决"+7加-7是不等于0"的问题,所以,人为规定,计算机不能使用"源码"来计算,而是要使用"反码"
        

--> 反码:
                正数的反码是正数本身,负数的反码是"负数的源码除了符号位之外,其他位都取反(0变1,1变0)" // 进行运算的时候,反码运算的结果是"反码"
                           源码                           反码
                +7: 0000 0111                0000 0111
                -7: 1000 0111                1111 1000
               
                --> 计算反码: "+7加-7"  
                        +7: 0000 0111
                        // +
                        -7: 1111 1000        
                        // =
                                1111 1111  -->  (源码)1000 0000 -->  -0   //自然界中,0就是0,不存在+0或者-0
               
        解决:
                为了,解决"+0和-0"的问题,所以,人为规定,计算机不能使用"源码",也不能使用"反码",而是要使用"补码"
               
               
--> 补码:
                正数的补码是正数本身,负数的补码是"负数的反码+1"         // 进行运算的时候,补码运算的结果就是"补码"
                         源码                           反码                          补码
                +7: 0000 0111                0000 0111                0000 0111
                -7: 1000 0111                1111 1000                1111 1001
               
                --> 计算补码: "+7加-7"  
                        +7: 0000 0111
                        // +
                        -7: 1111 1001        
                        // =
                                1 0000 0000  -->  超出了8位,所以,超出的部分砍掉. -->  0000 0000   --> 0
                                
                                
计算机中,所有的数据,都是用补码进行存储,用补码进行运算的.
               
        
        

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马