【软考】原码、反码、补码、移码

来源:互联网 发布:java class 查看工具 编辑:程序博客网 时间:2024/05/29 02:14


机器语言
           机器只用二进制1 和0进制的数、计算机字长为8位,十进制中的数 +3 ,转换成二进制就是00000011。如果是 -3 ,就是 10000011 。第一位是符号位、1带便负、0代表正、机器只会加法运算、8位的只范围是0000 0000 到1111 1111 也就是0-255、当定义为做为符号位、范围就是0111 1111 到1111 1111  127到—128。(注意、这里1111 1111 中的第一个带便负的意思 真正代表数的只有7个1)


为什么要有这么多码?
       每种码都有他存在的意义、他们解决了相对问题
       原码:二进制表示十进制
       反码:解决了减法问题
       补码:+1解决了0的符号以及两个编码的问题和有-128的原因
       移码:为了保证浮点数的机器零为全0。


怎么用?
       

       注意:反码、补码、的改变只针对负数、
       原码:直接用二进制表示10进制
       反码:原码除符号位、其他位取反
       补码:取反后的反码+1
       移码:在补码的基础上符号位移动(其实就是取反)

他们之间什么关系?

                         


                   反码是在原码的基础上改变的

                   补码是在反码的基础上改变的

                   移码是在补码的基础上改变的


推荐博客:http://blog.csdn.net/u010191034/article/details/40425469



—————————chenchen—————————


0 0
原创粉丝点击