查看: 1077|回复: 0

每日一帖|第十三天 数制转换

[复制链接]
  • TA的每日心情
    开心
    昨天 20:56
  • 签到天数: 1425 天

    连续签到: 10 天

    [LV.10]以坛为家III

    发表于 2016-8-16 01:05:59 来自手机 | 显示全部楼层 |阅读模式
    分享到:

    一 、数制
         计算机中采用的是二进制,因为二进制具有运算简单,易实现且可靠,为逻辑设计提供了有利的途径、节省设备等优点,为了便于描述,又常用八、十六进制作为二进制的缩写。
    一般计数都采用进位计数,其特点是:
    (1)逢N进一,N是每种进位计数制表示一位数所需要的符号数目为基数。
    (2)采用位置表示法,处在不同位置的数字所代表的值不同,而在固定位置上单位数字表示的值是确定的,这个固定位上的值称为权。
    在计算机中:D7 D6 D5 D4 D3 D2 D1 D0 只有两种0和1
    8 4 2 1

    二 、数制转换

        不同进位计数制之间的转换原则:不同进位计数制之间的转换是根据两个有理数如相等,则两数的整数和分数部分一定分别相等的原则进行的。也就是说,若转换前两数相等,转换后仍必须相等。
    有四进制
    十进制:有10个基数:0 ~~ 9 ,逢十进一
    二进制:有2 个基数:0 ~~ 1 ,逢二进一
    八进制:有8个基数:0 ~~ 7 ,逢八进一
    十六进制:有16个基数:0 ~~ 9,A,B,C,D,E,F (A=10,B=11,C=12,D=13,E=14,F=15) ,逢十六进一
    1、数的进位记数法
    N=a n-1*p n-1+a n-2*p n-2+…+a2*p2+a1*p1+a0*p0
    2、十进制数与P进制数之间的转换
    ①十进制转换成二进制:十进制整数转换成二进制整数通常采用除2取余法,小数部分乘2取整法。例如,将(30)10转换成二进制数。
    将(30)10转换成二进制数
    2| 30 ….0 ----最右位
    2 15 ….1
    2 7 ….1
    2 3 ….1
    1 ….1 ----最左位
    ∴ (30)10=(11110)2
    将(30)10转换成八、十六进制数
    8| 30 ……6 ------最右位
    3 ------最左位
    ∴ (30)10 =(36)8
    16| 30 …14(E)----最右位
    1 ----最左位
    ∴ (30)10 =(1E)16
    3、将P进制数转换为十进制数
    把一个二进制转换成十进制采用方法:把这个二进制的最后一位乘上20,倒数第二位乘上21,……,一直到最高位乘上2n,然后将各项乘积相加的结果就它的十进制表达式。
    把二进制11110转换为十进制
    (11110)2=1*24+1*23+1*22+1*21+0*20=
    =16+8+4+2+0
    =(30)10
    把一个八进制转换成十进制采用方法:把这个八进制的最后一位乘上80,倒数第二位乘上81,……,一直到最高位乘上8n,然后将各项乘积相加的结果就它的十进制表达式。
    把八进制36转换为十进制
    (36)8=3*81+6*80=24+6=(30)10
    把一个十六进制转换成十进制采用方法:把这个十六进制的最后一位乘上160,倒数第二位乘上161,……,一直到最高位乘上16n,然后将各项乘积相加的结果就它的十进制表达式。
    把十六制1E转换为十进制
    (1E)16=1*161+14*160=16+14=(30)10

    三 、二进制转换成八进制数
       
        (1)二进制数转换成八进制数:对于整数,从低位到高位将二进制数的每三位分为一组,若不够三位时,在高位左面添0,补足三位,然后将每三位二进制数用一位八进制数替换,小数部分从小数点开始,自左向右每三位一组进行转换即可完成。例如:
    将二进制数1101001转换成八进制数,则
    (001 101 001)2
    | | |
    ( 1 5 1)8
    ( 1101001)2=(151)8
    (2)八进制数转换成二进制数:只要将每位八进制数用三位二进制数替换,即可完成转换,例如,把八进制数(643.503)8,转换成二进制数,则
    (6 4 3 . 5 0 3)8
    | | | | | |
    (110 100 011 . 101 000 011)2
    (643.503)8=(110100011.101000011)2

    四 、二进制与十六进制之间的转换
       
        (1)二进制数转换成十六进制数:由于2的4次方=16,所以依照二进制与八进制的转换方法,将二进制数的每四位用一个十六进制数码来表示,整数部分以小数点为界点从右往左每四位一组转换,小数部分从小数点开始自左向右每四位一组进行转换。
    (2)十六进制转换成二进制数
    如将十六进制数转换成二进制数,只要将每一位十六进制数用四位相应的二进制数表示,即可完成转换。
    例如:将(163.5B)16转换成二进制数,则
    ( 1 6 3 . 5 B )16
    | | | | |
    (0001 0110 0011. 0101 1011 )2
    (163.5B)16=(101100011.01011011)2
    2进制转10进制最简便方法??
    如:(10111)2
         =(((((0*2+1)*2+0)*2+1)*2+1)*2+1)10
         =((((1*2+0)*2+1)*2+1)*2+1)10
         =((((2+0)*2+1)*2+1)*2+1)10
         =(((2*2+1)*2+1)*2+1)10
         =(((4+1)*2+1)*2+1)10
         =((5*2+1)*2+1)10
         =((10+1)*2+1)10
         =(11*2+1)10
         =(22+1)10
         =(23)10
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-11-26 12:32 , Processed in 0.112989 second(s), 14 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.