计算机系统基础知识02

数据表示

  

  例如,十进制数1234.56,其数值可计算如下:

    1234.56 = 1 * 10^3 + 2 * 10^2 + 3 * 10^1 + 4 * 10^0 + 5 * 10^-1 + 6 * 10^-2

    例如二进制数10100.01B的值可计算如下:

      10100.01B = 1 * 2^4 + 1 * 2^2  +  1 * 2^-2 = 20.25

    例如十六进制数8ABH的值可计算如下:

        8ABH = 8 * 16^2 + 10 * 16^1 + 11 * 16^0


十进制转二进制

  诀窍:使用‘除二取余’ 法,将余数从下往上排列

      2  86  余  0

      2  43  余  1

      2  21  余  1

      2  10  余  0

      2        5   余  1

      2   2   余       0

           1  

  得到1010110

二进制转八进制

  诀窍:从右开始,每三位为一组,不够三位的补0即可。每组按8421 权展开求和,最终得到八位进制数

     11101001   =  351

      8  4   2   1

         0   1   1  ->  3

      1   0   1  ->  5

      0   0   1  ->  1

二进制转十六进制

  诀窍:从右开始,每四位为一组,不够三位的补0即可。每组按8421 权展开求和,最终得到十六位进制数

    

       11101001   =  E9

       8   4   2   1

       1   1   1   0  ->  E

       1   0   0   1  ->  9

 

        1    -1    1-1           最左边的是位数是符号位,0表示正数,1表示负数。 

原码 0000 00001    1000 0001      1000 0010     1-1运算是两个数的二进制相加运算,同1相加进1位   

反码  0000 00001     1111 1110       1111  1111     正数原码,反码,补码一致。负数的反码是原码除符号位不变,其余取反的结果。

补码  0000 00001     1111 1111       0000 0000     负数反码是 反码基础上 末位补1.

移码  1000 00001     0111 1111       0000 0000    正数、负数的移码是补码的基础上,符号位取反。(移除符号位)

补码是最适合进行数字的加减运算的数字编码

移码只用于表示浮点数的阶码,所以只用于整数

原文地址:https://www.cnblogs.com/linbin7/p/10872662.html