admin 管理员组文章数量: 1087135
2024年12月22日发(作者:仅完成部分的readprocessmemory)
二进制转十进制、十进制转十六进制及其他各进制的转换方法文库.txt不要为旧的悲伤而浪
费新的眼泪!现在干什么事都要有经验的,除了老婆。没有100分的另一半,只有50分的两
个人。二进制转十进制、十进制转十六进制及其他各进制的转换方法2009-03-22 0951二进
制转换十进制
首选二进制转其它进制:
二进制数第0位的权值是2的0次方,第1位的权值是2的1次方„„
例如,设有一个二进制数:0110 0100,转换为10进制为:
下面是竖式:
0110 0100 换算成 十进制
从右边位数开始数起:
第0位 0 x 2^0 = 0
第1位 0 x 2^1 = 0
第2位 1 x 2^2 = 4
第3位 0 x 2^3 = 0
第4位 0 x 2^4 = 0
第5位 1 x 2^5 = 32
第6位 1 x 2^6 = 64
第7位 0 x 2^7 = 0
--------------------------
(0110 0100)B=(100)D
注:数字后面相应的字母表示不同的进位制。B表示二进制,O表示八进制,D表示十进制,H
表示十六进制。
八进制转换十进制
八进制就是逢8进1。
八进制数采用 0~7这八数来表达一个数。
八进制数第0位的权值为8的0次方,第1位权值为8的1次方,第2位权值为8的2次方„„
所以,设有一个八进制数:1507,转换为十进制为:
用竖式表示:
1507换算成十进制。
第0位 7 x 8^0 = 7
第1位 0 x 8^1 = 0
第2位 5 x 8^2 = 320
第3位 1 x 8^3 = 512
--------------------------
(1507)O=(839)D
同样,我们也可以用横式直接计算:
7 X 8^0 + 0 X 8^1 + 5 X 8^2 + 1 x 8^3 = (839)D
结果是,八进制数1507 转换成十进制数为 839
十六进制转换为十进制
十六进制的各字母所代表的数字是:A(10)、B(11)、C(12)、D(13)、E(14)、F(15)
同样可以用上面的竖式来表示(这里就略了)
横式表示如下
(ABC.8C)H=10x16^2+11x16^1+12x16^0+8x16^-1+12x16^-2
=2560+176+12+0.5+0.046875
=(2748.546875)D
上面所说的都是转为十进制的方法,那有没有二进制转为八进制的方法呢?
当然是有的了,不过要先把二进制转为十进制再转为八、十六进制这是比较原始的方法,也
有简单的方法,那就先说原始的方法吧
十进制转换为二进制、八进制、十六进制
十进制转为其它进制要分为两部份,因为十进制有小数跟整数部份,所以要分两步:
1.整数部分除R取余
例:(125)D=(1111101)B
这里是用短除法来完成的,换句话说:除R取余“R”就是进制数,如果是二进制就R=2,同
理八进制就R=8
R=2 被除数 余数 余数的获取
2 125 1 125-2X62=1 最低位
2 62 0 62-2X31=0
2 31 0 31-2X15=1
2 15 1 15-2X7=1
2 7 1 7-2X3 =1
2 3 1 3-2X1=1
2 1 1 1-2X0=1 最高位
结果:(125)D=(1111101)B
注:余数中最后得到的余数为最高位,最先得到的余数为最低位,从高到低依次排列。
同理十进制转换为八进制时:只要更改R的值就可以。此处不重复。
2.小数部分乘R取整
例:(0.25)D
0.25
X 2 0
_______________
0.50 (整数部分0为高位)
X 2 ↓ 0
_______________ ↓ (从上往下写)
1
1.00 (整数部分1为低位)
从上往下写结果:0.01
(0.25)D=(0.01)B
以下写个复杂小小的例题:(0.625)D
0.625
X 2 0
_______________
1.250 1 (因为乘2后所得的结果整数部分得1,所以取1)
0.25 (因为一以被取所以整数位变0)
X 2 ↓
_______________ ↓ (从上往下写)
0.5 0
X2
_______________
1 1
结果:(0.625)D=(0.101)B
注:整数的转换是精确的,小数的转换可能出现无穷小数或循环小数的情况。此时需要进行
舍入处理以截断,所以小数的转换可能略有偏差。箭头表示由高位到低位的趋势。
至于注释所说的只要按照以上的方法用计算十进制(0.1)D转二进制是得什么结果就明白了。
同理十进制转八、十六进制是一样。这里略
这里以说明了二进制转其它进制的方法以及十进制转换其它进制的方法
所如果想达到进制的转换需要跳级进制的方法的话,可以用以下的方法,
一般二进制转换八进制是:先二进制转十进制再十进制转八进制的方法
但以下是可以一步完成进制的转换方法:
例:(0110 0100)B转八进制
首先将0110 0100写成 001 100 100 这两个数是等效的,只不过是在原来的基础上前加一个
0,为什么要三位为一个单元呢,因为二进制转八进制是由三个位来完成一个八进制的单个数。
如上例:
0110 0100 ------à 001 100 100 三位为一个单元
1 4 4
所(0110 0100)B=(144)O
同理:(0110 0100)B=(64)H
0110 0100 四位为一个单元
6 4
提醒:只要记清楚常用的互为相加就方便很多了。
二进制 十进制
1 1
10 2
11 3=1+2 也就是(1+10)B
100 4
1000 8
10000 16
100000 32
版权声明:本文标题:二进制转十进制、十进制转十六进制及其他各进制的转换方法 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1734912217a1608185.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论