进制数转换 - zgw

时间:2024-02-25 17:54:27

进制数转换

2016-10-17 12:00  zgw2014  阅读(723)  评论(0编辑  收藏  举报

二进制(B)、八进制(O)、十进制(D)、十六进制(H)四种进制数之间相互转换(小数点的暂时不清楚,网上查询的跟程序运行的结果不一样)

(1).不同的后缀代表不同的进制:

xx H   代表十六进制

xx D   代表十进制

xx O   代表八进制

xx B   代表二进制

(2).不同进制数的开头也不同:

0    数字前加上0的是八进制数

0x  数字前加上0x的是十六进制数

一、二进制

  定义:它是由0和1两个数码来表示的数,它的基数是二,进位规则是:逢二进一,借位规则是:借一当二

  1.二进制转十进制方法:把二进制数按权展开、相加即得十进制数,从左往右数,从0开始数,不是从1开始数,把每个位计算的结果相加即可(位数是0的代表没值,为1的才有值)

    比如:二进制数 10010110 转换成十进制数,如图:

    

  2.二进制转八进制方法:3位二进制数按权展开相加得到1位八进制数。(注意事项,3位二进制转成八进制是从右到左开始转换,不足时补0,在左边补0,不是右边,在右边补0就改变了二进制的值了)。

    依旧使用 10010110 来做转换,如图:

    

  3.二进制转十六进制方法:与二进制转八进制方法近似,八进制是取三合一,十六进制是取四合一。(注意事项,4位二进制转成十六进制是从右到左开始转换,不足时补0,在左边补0,不是右边,在右边补0就改变了二进制的值了)

    问题1:为什么从10开始都是用字母标识??

    解:因为如果不用字母代替的话,会与10进制相同,比如11,在十进制表示11,在十六进制中如果不用字母B表示,你区分的开吗?

    问题2:为什么最大到15呢?

    解:因为二进制转十六进制是取4个二进制转1个十六进制,4个二进制最大的结果是15(1*2*2*2+1*2*2+1*2+1=15)

    依旧使用 100101100 来做转换,如图:

    

二、八进制

  定义:Octal,缩写OCT或O,一种以8为基数的计数法,采用0,1,2,3,4,5,6,7八个数字,逢八进1。一些编程语言中常常以数字0开始表明该数字是八进制

  1.八进制转二进制的方法:八进制数通过除2取余法,得到二进制数,对每个八进制为3个二进制,不足时在最左边补零。

     

 

  2.八进制或者十六进制转十进制方法:把八进制、十六进制数按权展开、相加即得十进制数。

    比如226,转10进制

     

  3.八进制转16进制目前没有一步到位的方法,只能先行转换成其他进制的,再行转换

三、十进制

  定义:600,3/5,-7.99……看着这些耳熟能详的数字,你有没有想太多呢?其实这都是全世界通用的十进制,即1.满十进一,满二十进二,以此类推……2.按权展开,第一位权为10^0,第二位10^1……以此类推,第N位10^(N-1),该数的数值等于每位位的数值*该位对应的权值之和。

  1.十进制转二进制方法:十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除2,依此步骤继续向下运算直到商为0为止。

    

  2.十进制转八进制或者十六进制方法:直接把十进制转八进制或者十六进制按照除8或者16取余,直到商为0为止

    

四、十六进制

  定义:它由0-9,A-F组成,字母不区分大小写。与10进制的对应关系是:0-9对应0-9;A-F对应10-15;N进制的数可以用0~(N-1)的数表示,超过9的用字母A-F。

  1.十六进制转二进制方法:十六进制数通过除2取余法,得到二进制数,对每个十六进制为4个二进制,不足时在最左边补零。

     

  2.十六进制转十进制或者八进制都不能直接转换,需要间接的去转换