zoukankan      html  css  js  c++  java
  • 进制转换

    一、数值与数制转换

    (一)、数制

    计算机中采用的是二进制,因为二进制具有运算简单,易实现且可靠,为逻辑设计提供了有利的途径、节省设备等优点。一般计数都采用进位计数:

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

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

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

    十六进制:逢十六进一,借一当十六

    (二)、数制转换

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

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

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

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

    十六进制:有16个基数: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位二进制数

    (2)二进制——十进制

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

    以上公式中, a表示二进制数的右边第一位数,b 、c 、...、m 以此类推。

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

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

              =1+8+16+64

              =89

    小技巧:为方便计算可将公式变为以下形式:(注:此小技巧仅适用于较小数字的计算)

    二进制右数位数

    1

    2

    3

    4

    5

    6

    7

    8

    十进

    制数

    1

    2

    4

    8

    16

    32

    64

    128

    公式原型

      20  

       21   

        22

       23 

        24

      25  

      26  

        27

    (二)、十进制与八进制

    (1)十进制——八进制

    十进制数逐次整除8,直至商为0,所得余数按照相反的顺序写出,即为其八进制数。(同十进制——二进制)

    (2)八进制——十进制(同 二进制——十进制)

    计算公式:a*80+b*81+c*82+...+m*8(n-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

    64

    8

    1

    (三)、十进制与十六进制

    (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(16)

    (2)十六进制——十进制(同 二进制——十进制)

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

    小技巧:

      163   

      162   

      161  

     160   

    4096

    256

    16

    1

    三、其他进制之间的转换

    (一)、二进制与八进制

    (1)二进制转换为八进制

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

    例:(001     101     111     011)

               1        5        7         3

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

    (2)八进制转换为二进制

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

    例:(1      7      3      5)

        001    111    011    101

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

    (二)、二进制与十六进制

    (1)二进制转换为十六进制

    将二进制数的每四位用一个十六进制数码来表示,整数部分以小数点为界点从右往左每四位一组转换,小数部分从小数点开始自左向右每四位一组进行转换。

    例:(1001     0111     0111     1001)

                9         7           7          9

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

    (2)十六进制转换为二进制

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

    例:(8        7        6        5)

       1000     0111     0110     0101

    所以,(1000011101100101)为所得的二进制数。

    综上所述,十进制可以与二进制、八进制、十六进制相互转换,二进制可以与八进制、十六进制相互转换。

  • 相关阅读:
    请问发表的文章如何备份?
    .NET中利用XML来自动生成代码策略
    XPO使用随笔
    为方便做封包分析,做了个十六进制和字符互转的网页小工具
    前端人员如何模拟慢网速环境
    补充《动态加载外部.js文件时候,javascript的执行顺序问题》
    凡客诚品官方网站的前端改进建议
    "Cachecontrol”常见的取值private、nocache、maxage、mustrevalidate及其用意
    javascript跨域操作cookie的点滴记录
    HTTPS的七个误解(译文转载)
  • 原文地址:https://www.cnblogs.com/H2921306656/p/5595286.html
Copyright © 2011-2022 走看看