• 进制转换


    1.计算机中采用二进制,因为二进制具有运算简单,易实现且可靠,为逻辑设计提供有利途径、节省设备等优点,为了便于描述,又长用八、十六进制作为二进制的缩写,一般技术都采用进位计数,其特点:

    (1)逢N进一,N是每种进位计数制表示一位数所需要符号数目为基数。

       二进制:逢二进一,借一当二

       八进制:逢八进一,借一当八

       十六进制:。。。。。。。。

    (2)数制转换 不同进位计数制之间的转换原则:不同进位计数制之间的转换是根据两个有理数如相等,则两数的整数和分数部分一定分别相等的原则进行的,若转换前两数相等,转换后仍必须相等。

    十进制:有十个基数:0,1,2,3,4,5,6,7,8,9

    二进制:有两个基数:0,1

    八进制:有八个基数;0,1,2,3,4,5,6,7

    十六进制:有十六个基数:0—9,A,B,C,D,E,F(A=10,B=11,C=12,D=13,E=14,F=15)

    一、十进制与其他进制之间的转换

    1)十进制—二进制

    十进制除以2,除至0时所得余数按反方向写出,即为二进制数

    例:36除以2得出的商依次是  18  9  4  2   1

          所得余数依次为           0  0  1  0   0  1

          将余数从右往左写        1  0  0  1   0   0

    所得出100100为二进制数

    小技巧:为方便可将公式变为以下形式:

    二进制

    右数位数

    1 2 3 4 5 6 7 8
    十进制数 1 2 4 8 16 32 64 128
    公式原型 20  21  22  23  24  25  26  27

    2)二进制—十进制

    计算公式:a*20+b*21+c*22+....+m*2(n-1)=

    以上公式,a表示二进制数的右边第一位的数,b表示二进制数的右边第二位的数,c表示二进制数的右边第三位的数.....m表示二进制数的右边第(n-1)位的数

    例:1011001由右至左成为十进制为89

    1*20+0*21+0*22+1*23+1*24+0*25+1*26

    =1+8+16+64

    =89

    二、1)十进制—八进制

    从右第n位 8 7 6 5 4 3 2 1
    8(n-1) 87 86 85 84 83 82 81 80
    十进制下的实际数 2097152 262144 32768 4096 512 94 8 1

    (2)同二进制转十进制

    计算公式      a*80+b*81+c*82+d*83+.....+m*8(n-1)=

    以上公式中,a表示八进制数的右边第一位的数,b表示八进制数的右边第二位的数,c表示八进制数的右边第三位的数.....m表示八进制数的右边第(n-1)位的数。

    例:2137由右至左成为十进制为1119

    7*80+3*81+1*82+2*83

    =7+24+64+1024

    =1119

    三、1)十进制—十六进制

    十进制数除以十六

    0,1,2,3,4,5,6,7,8,9,A(10),B(11),C(12),D(13),E(14),F(15)

    十进制数逐次整除16,至商为0,所得余数按相反顺序写出,即为其十六进制数。

    例:75除以16得出的余数为11(B)      4

    余数从右向左写为   4B

    2)十六进制—十进制

    同二进制、八进制一样

    计算公式:  a*160+b*161+c*162+d*163+.....+m*16(n-1)=

     以上公式中,a表示十六进制数的右边第一位的数,b表示十六进制数的右边第二位的数,c表示十六进制数的右边第三位的数.....m表示十六进制数的右边第(n-1)位的数。

    163 162 161 160
    4096 256 16 1

    例:1BC2由右至左成为十进制为7106

    2*160+12*161+11*162+1*161

    =2+192=2816+4096

    =7106

    四、其他进制之间的转换

    二进制转换为八进制:对于整数,采用从右到左每三组一组,不够三位数的在其左边补齐0,每组单独转换出来,即为八进制数。

    例:(001             101            111        011)

              1                 5                7            3

       所以,(1573)即为所得八进制数。

    八进制转换为二进制:将每位八进制由三位二进制数代替,即可完成转换。

    例:(1         7           3         5)

           001       111        011    101

    所以,(1111011101)即为所得二进制数。

    二进制转换为十六进制:由于2的4次方+16,所以依照二进制与八进制的转换方法,将二进制数的每四位用一个十六进制数码来表示,整数部分以小数点为界点从右往左每四位一组转换,小数部分从小数点开始自左向右每四位一组进行转换。

    例  :     (1001         0111        0111       1001)

                      9              7              7             9

    所以,(9779)为所得的十六进制数

    十六进制转换为二进制:只要将每一位十六进制数用四位相应的二进制数表示,即可完成转换。

    例   :   (8         7         6         5)

                 1000    0111   0110     0101

    所以,(1000 0111 0110 0101)为所得的二进制数。

  • 相关阅读:
    树莓派linux驱动学习之hello world
    android通过服务实现消息推送
    [转载] iOS开发分辨率那点事
    《裸辞的程序猿漂流记十四》——升级站点
    typedef 总结
    苹果 App Store 申请和管理相关知识
    判断系统是12小时制还是24小时制
    解决 UIView 设置背景为UIImage图片变型问题[XXX setBackgroundColor:[UIColor colorWithPatternImage:XXX]];
    免费iOS第三方推送工具Urban Airship使用教程
    sizeWithFont:方法使用明细
  • 原文地址:https://www.cnblogs.com/zzzy0828/p/5594472.html
Copyright © 2020-2023  润新知