二进制(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.十六进制转十进制或者八进制都不能直接转换,需要间接的去转换