【整理】数制

来源:互联网 发布:盐为什么国家控制知乎 编辑:程序博客网 时间:2024/06/08 04:37

计算机中通用的有二进制、八进制、十进制和十六进制

二进制:
    二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。
    二进制向十进制转换
    二进制表示方式中每个位置有一个编号,最右边位置的编号是0,相左依次递增
    某个位置上的1代表的数字是2的位置编号次方
    如:           编号   ...3 2 1 0
                    二进制  ...1 1 1 1   即1111换10进 2^3+2^2+2^1+2^0=15

十进制向二进制的转换:
      不断对数字做除以2保留整数部分的操作得到一组数字,其中每个数字在做除以2取余得到每个数位的内容。把所有余数按照从后向前倒序书写就得到转换结果
   如 12 转换成二进制:                                                     余数
                                       ×××× ××××    12                              0
                                       ×××× ×××0    12/2 = 6                     0
                                       ×××× ××00    12/2/2 = 3                  1
                                       ×××× ×100    12/2/2/2 = 1               1
                                       ×××× 1100    12/2/2/2/2 = 0            0
                              得     0000 1100

负数十进制转换成二进制
    1、得到负数的相反数
    2、把第一步的结果转换成二进制
    3、把第二步每个数位上的内容变成相反值
    4、把第三步的结果加1
    eg:
                 绝对值        二进制     取反            加1
        -14 -> 14 -> 00001110 -> 11110001 -> 11110010
        -37 -> 37 -> 00100101 -> 11011010 -> 11011011

    负数二进制转换十进制
    1、计算出相反数的二进制
    2、将第一步的结果转换成十进制
    3、根据第二步的结果再计算相反数
    eg:
                                       取反            加1        转十进制  取反
        1100 0101 -> 0011 1010 -> 0011 1011 -> 59 -> -59

八进制
    把二进制从右向左每三个数位分成一组,第组用0到7之间的一个数字替代, 这个结果叫做数字的八进制表示方式
    eg: 0110 1010 -> 01 101 010 -> 152(八进制)
   
    × 可以在程序直接使用八进制方式表示数字,必须以 0 作为开头
    × 采用 %o 作为占位符把数字的八进制表示方式打印在屏幕上

十六进制
    把二进制数字从右向左每四个数位分成一组,每组用一字符替换(用a到f这六个字母代表10 到15)
    eg:  1100 1011  ->    cb(十六进制)
   
    * 在程序中使用十六进制方式表示数字,必须以0x作为开头
    * 用%x或%X做占位符反十六进制表示方式打印在屏幕上(打印结果不以0x开头)
0 0
原创粉丝点击