zoukankan      html  css  js  c++  java
  • 2进制_8进制_16进制之间快速转换的技巧.txt

    一)、数制 
    计算机中采用的是二进制,因为二进制具有运算简单,易实现且可靠,为逻辑设计提供了有利的途径、节省设备等优点,为了便于描述,又常用八、十六进制作为二进制的缩写。


    一般计数都采用进位计数,其特点是: 
    (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 
    3、二进制转换成八进制数 
    (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 
    4、二进制与十六进制之间的转换 
    (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.8.16--10


    方法:按权展开相加、将整数部分和小数部分按转换方法分别转换。




    十进制整数转换成二、八、十六进制整数。10--2.8.16(整数)


    方法:除N取余,倒向取数。




    十进制小数转换成二、八、十六进制小数。10--2.8.16(小数)


    方法:乘N取整,正向取数。整数部分按整数转换原则,小数部分按小数转换原则,分别进行转换。




    二进制数与八、十六进制数的互相转换。


    方法:采用8421法。一位8进制数正好表示3位2进制数。一位16进制数正好表示4位2进制数。2--8方法:以小数点为界,向左右每3位分成一组,不够补零。2--16方法:以小数点为界,向左右每4位分成一组,不够补零。




    八、十六进制数转换成二进制数。8.16--2


    方法:将每一位8进制、16进制的数分为3个、4个二进制数(逆过程)。




    八进制数转换成十六进制数。8--16


    方法:把2进制当做桥梁,先把八进制数转换成二进制数,再把二进制数转换成十六进制数。
    计算机中数的表示方法--二进制 
    1. 二进制数的运算 
    电子计算机一般采用二进制数。二进制数只有0和1两个基本数字,容易在电气元件中实现。 
    二进制数的运算公式: 
    0+0=0 0×0=0 
    0+1=1 0×1=0 
    1+0=1 1×0=0 
    1+1=10 1×1=1 
    2.十进制和二进制间的转换 
    (1) 十进制数转换成二进制 
    将十进制整数转换成二进制整数时,只要将它一次一次地被2除,得到的余数从最后一个余数读起)就是二进制表示的数。 
    2) 二进制数转换成十进制数 
    将一个二进制数的整数转换成十进制数,只要将按权展开。 
    例:11011=1*24(2的4次方)+1*23(2的3次方)+0*22(2的2次方)+1*21(2的1次方)+1*20(2的0次方)=27 
    3. 不同进制数的转换 
    二进制数和八进制数互换:二进制数转换成八进制数时,只要从小数点位置开始,向左或向右每三位二进制划分为一组(不足三位时可补0),然后写出每一组二进制数所对应的八进制数码即可。 
    例:将二进制数(10110001.111)转换成八进制数: 
    010 110 001. 111 
    2 6 1 7 
    即二进制数(10110001.111)转换成八进制数是(261.7)。反过来,将每位八进制数分别用三位二进制数表示,就可完成八进制数和二进制数的转换。 
    二进制数和十六进制数互换:二进制数转换成十六进制数时,只要从小数点位置开始,向左或向右每四位二进制划分为一组(不足四位时可补0),然后写出每一组二进制数所对应的十六进制数码即可。 
    例:将二进制数(11011100110.1101)转换成十六进制数: 
    0110 1110 0110. 1101 
    6 E 6 D 
    即二进制数(11011100110.1101)转换成十六进制数是(6E6.D)。反过来,将每位十六进制数分别用三位二进制数表示,就可完成十六进制数和二进制数的转换。
    八进制数、十六进制数和十进制数的转换:这三者转换时,可把二进制数作为媒介,先把代转换的数转换成二进制数,然后将二进制数转换成要求转换的数制形式。


    参考资料:http://zhidao.baidu.com/question/36627417.html?fr=ala0
  • 相关阅读:
    爬虫 高性能
    cmder 神器 +curl
    Scrapyd
    adb ( Android Debug Bridge)
    java 并发(五)---AbstractQueuedSynchronizer(4)
    java 并发(五)---AbstractQueuedSynchronizer(3)
    java 并发(五)---AbstractQueuedSynchronizer(2)
    java 并发 (四) ---- 并发容器
    java 并发(五)---AbstractQueuedSynchronizer
    java 并发(三)---Thread 线程
  • 原文地址:https://www.cnblogs.com/pamxy/p/2991449.html
Copyright © 2011-2022 走看看