二进制,八进制,十进制,十六进制,之间的转换。
本帖最后由 loo 于 2016-1-3 19:03 编辑首先我们要知道 各进制之间是以什么形态存在的,怎么区分。
先来说说二进制:它是以“0”和”1“组成的,也是计算机能够理解的语言,因为计算机只知道0和1。它不能理解2345AB之类的。无论是什么语言,最终都是以计算机底层语言存在的也就是0和1。也就是说 0 = 0 ,1 = 1, 2 = 10, 3 = 11 ,4 = 100, 5 = 101, 6 = 110 , 7 = 111, 以此类推。
然后是八进制:八进制它是以前缀0(零)开头的 后面的都是数字, 例如: 0123,017777,0356 等等。
再然后是十进制:十进制它是以数字开头的,当然 “0” 除外。 例如: 1738,2563.123 等等。
最后是十六进制:十六进制它是以(零)0x 或者(零) 0X ,X不分大小写,十六进制有十六位 ,分别为0 ~9 10~15(在这里强调) 在十六进制中 10 ~ 15不是用数字表示的 是以A~F ,或者 a~f 不区分大小写。也就是说a = 10, b = 11 ,c = 12,d = 13,
e= 14 ,f =15。
注:无论是什么进制前缀只是区分,所以不在运算的范围内。
以上就是各进制的形态和如何 区分了。
先来说说十进制是如何转换成二进制的
假设一个十进制数为62。
十进制转二进制 就是一个不断÷2 然后每÷一次就计算它余数一次的过程,直到 被÷数为零为止,
除2被÷数 余数
2 /62 0
2 /31 1
2 /15 1
2 / 7 1
2 / 3 1
1
好 到了3 ÷2等于1余1 一已经不能再除了结果 自下而上 为 111110就是 十进制62 转换为二进制的形态了。
二进制转十进制
假设一个二进制数为11010
从后到前依次取它们权值 0 * 2的零次方=0
1 * 2的一次方=2
0 * 2的二次方=0
1 * 2的三次方=8
1 * 2的四次方=16
然后把它们所得数全部相加16+8+0+2+0=26 结果为26也可以这样加 16+8+2=26。26就是二进制11010转十进制的形态了。
注:有多少个 数就乘多少次方。
十进制转八进制
和十进制转二进制差不多 只是把÷2改为÷8,但不同于二进制只能余1或者0。
假设一个十进制数为 312
8 /312 0
8 / 39 7
4
结果为0470 也就是,十进制312转 八进制的形态了
八进制转十进制
假设一个八进制数为05642
2 * 8的零次方=2
4 * 8的一次方=32
6 * 8的二次方=384
5 * 8的三次方=2560
然后把它们所得数全部相加 2560+384+32+2=2978
2978就是八进制05642转的十进制形态了。
十进制转十六进制
假设一个十进制数为21206
16 /21206 6
16 / 1325 d
16 / 82 2
5
结果为:52d6也就算是十进制21206转为十六进制的形态了 0x52d6
十六进制转十进制
假设一个十六进制数为0xfed3
3 * 16的零次方=3
d * 16的一次方=208
e * 16的二次方=3584
f* 16的三次方=61440
将所得数全部相加:61440+3584+208+3= 65235。
二进制转八进制
假设一个二进制数为 10111011
首先将10111011从右到左, 每三位一组 ,缺位用0填补,然后按二进制转十进制的方法进行转换
011 111 010
011 111 010
1 * 2的零次方=1 1 * 2的零次方=1 0 * 2的零次方=0
1 * 2的一次方=2 1 * 2的一次方=2 1 * 2的一次方=2
0 * 2的二次方=0 1 * 2的二次方=4 0 * 2的二次方=0
相加=3 相加=7 相加=2
然后按二进制数10111011从右到左每三位为一组缺位用0填补,排列为竖排
011 =3
111 =7
010 =2
按自下而上的排列结果为 :273
0273就是二进制10111011的八进制形态了
八进制转二进制
假设一个八进制数为0543
从后往前每位按十进制数转换为三位二进制数缺位用0填补
3 = 011
4 = 100
5 = 101
结果自下而上为:101100011
二进制转十六进制
假设一个进制数为10100111
我们只需要记住它的权值就可以很快算出它的十六进制数了
从右到左依次算出他们的权值 从高位到底位 为 8 4 2 1
以下填写0就写0 , 其它位按8 4 2 1 规律写
1010 0111
8020 0421
相加 相加
10 7
a 7
结果为a7也就是10100111的十六进制的形态了(0xa7)
十六进制转二进制
假设一个十六进制数为0xea8b
我们先求它们的权值。
然后按8 4 2 1 规律写0也写0
e a 8 b
8 4 2 0 8 0 2 0 8 0 0 0 8 0 2 1
1 1 1 0 1 0 1 0 1 0 0 0 1 0 1 1
结果为:1110101010001011 也就是十六进制0xea8b在二进制中的形态了
本文到此为止 希望对各位想学的同学们有帮助,如有不符还望拍砖。
谢谢大家
好{:10_256:}
页:
[1]