. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->基础知识
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  进制转换  [待解决] 回复[ 15次 ]   点击[ 1461次 ]  
hyi
[帖 主]   [ 发表时间:2008-06-11 19:23 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-06-06 18:50
1. 十 -----> 二

(25.625)(十)
整数部分:
25/2=12......1
12/2=6 ......0
6/2=3  ......0
3/2=1  ......1
1/2=0  ......1
然后我们将余数按从下往上的顺序书写就是:11001,那么这个11001就是十进制25的二进制形式

小数部分:
0.625*2=1.25
0.25 *2=0.5
0.5  *2=1.0
然后我们将整数部分按从上往下的顺序书写就是:101,那么这个101就是十进制0.625的二进制形式

所以:(25.625)(十)=(11001.101)(二)


2. 二 ----> 十

(11001.101)(二)
整数部分:     下面的出现的2(x)表示的是2的x次方的意思
1*2(4)+1*2(3)+0*2(2)+0*2(1)+1*2(0)=25
小数部分:  
1*2(-1)+0*2(-2)+1*2(-3)=0.625
所以:(11001.101)(二)=(25.625)(十)


3. 十 ----> 八

(25.625)(十)
整数部分:
25/8=3......1
3/8 =0......3
然后我们将余数按从下往上的顺序书写就是:31,那么这个31就是十进制25的八进制形式

小数部分:
0.625*8=5
然后我们将整数部分按从上往下的顺序书写就是:5,那么这个5就是十进制0.625的八进制形式

所以:(25.625)(十)=(31.5)(八)


4. 八 ----> 十
(31.5)(八)
整数部分:
3*8(1)+1*8(0)=25
小数部分:
5*8(-1)=0.625
所以(31.5)(八)=(25.625)(十)


5. 十 ----> 十六
(25.625)(十)
整数部分:
25/16=1......9
1/16 =0......1
然后我们将余数按从下往上的顺序书写就是:19,那么这个19就是十进制25的十六进制形式
小数部分:
0.625*16=10(即十六进制的A或a)
然后我们将整数部分按从上往下的顺序书写就是:A,那么这个A就是十进制0.625的十六进制形式
所以:(25.625)(十)=(19.A)(十六)


6. 十六----> 十
(19.A)(十六)
整数部分:
1*16(1)+9*16(0)=25
小数部分:
10*16(-1)=0.625
所以(19.A)(十六)=(25.625)(十)    




如何将带小数的二进制与八进制、十六进制数之间的转化问题

我们以(11001.101)(二)为例讲解一下进制之间的转化问题
说明:小数部份的转化计算机二级是不考的,有兴趣的人可以看一看



1. 二 ----> 八
(11001.101)(二)
整数部分:    从后往前每三位一组,缺位处有0填补,然后按十进制方法进行转化,  则有:
001=1
011=3
然后我们将结果按从下往上的顺序书写就是:31,那么这个31就是二进制11001的八进制形式

小数部分:    从前往后每三位一组,缺位处有0填补,然后按十进制方法进行转化,  则有:
101=5
然后我们将结果部分按从上往下的顺序书写就是:5,那么这个5就是二进制0.625的八进制形式
所以:(11001.101)(二)=(31.5)(八)


2. 八 ----> 二
(31.5)(八)
整数部分:从后往前每一位按十进制转化方式转化为三位二进制数,缺位处用0补充   则有:
1---->1---->001
3---->11
然后我们将结果按从下往上的顺序书写就是:11001,那么这个11001就是八进制31的二进制形式
说明,关于十进制的转化方式我这里就不再说了,上一篇文章我已经讲解了!

小数部分:从前往后每一位按十进制转化方式转化为三位二进制数,缺位处用0补充   则有:
5---->101
然后我们将结果按从下往上的顺序书写就是:101,那么这个101就是八进制5的二进制形式
所以:(31.5)(八)=(11001.101)(二)


3. 十六 ----> 二
(19.A)(十六)
整数部分:从后往前每位按十进制转换成四位二进制数,缺位处用0补充             则有:
9---->1001
1---->0001(相当于1)
则结果为00011001或者11001
小数部分:从前往后每位按十进制转换成四位二进制数,缺位处用0补充             则有:
A(即10)---->1010
所以:(19.A)(十六)=(11001.1010)(二)=(11001.101)(二)


4. 二 ----> 十六
(11001.101)(二)
整数部分:从后往前每四位按十进制转化方式转化为一位数,缺位处用0补充         则有: 
1001---->9
0001---->1
则结果为19
小数部分:从前往后每四位按十进制转化方式转化为一位数,缺位处用0补充         则有:
1010---->10---->A
则结果为A
所以:(11001.101)(二)=(19.A)(十六)


最近有些朋友提了这样的问题“0.8的十六进制是多少?”
于是我就动手算了一下,发现0.8、0.6、0.2... ...一些数字在进制之间的转化
过程中确实存在麻烦。

就比如“0.8的十六进制”吧!
无论你怎么乘以16,它的余数总也乘不尽,总是余8
这可怎么办啊,我也没折了
第二天,我请教了我的老师才知道,原来这么简单啊!


具体方法如下:
0.8*16=12.8 
0.8*16=12.8 
    . 
    . 
    . 
    . 
    . 
取每一个结果的整数部分为12既十六进制的C 
如果题中要求精确到小数点后3位那结果就是0.CCC 
如果题中要求精确到小数点后4位那结果就是0.CCCC
lwbfq
[第1楼]   [ 回复时间:2008-06-19 13:42 ]   [引用]   [回复]   [ top ] 
荣誉值:56
信誉值:0
注册日期:2008-01-19 13:58
学习了!
mkm
[第2楼]   [ 回复时间:2008-07-21 13:31 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-07-11 17:45
写的不错,学习了。
xntop
[第3楼]   [ 回复时间:2008-07-24 23:50 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-07-24 23:36
不错不错!很好,很详细!
hshine
[第4楼]   [ 回复时间:2008-12-13 10:08 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:3
注册日期:2008-10-04 09:42
hshine
[第5楼]   [ 回复时间:2008-12-13 10:22 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:3
注册日期:2008-10-04 09:42
. 二 ----> 八 
(11001.101)(二) 
整数部分:    从后往前每三位一组,缺位处有0填补,然后按十进制方法进行转化,  则有: 
001=1 
011=3 
然后我们将结果按从下往上的顺序书写就是:31,那么这个31就是二进制11001的八进制形式 

小数部分:    从前往后每三位一组,缺位处有0填补,然后按十进制方法进行转化,  则有: 
101=5 
然后我们将结果部分按从上往下的顺序书写就是:5,那么这个5就是二进制0.625的八进制形式 
所以:(11001.101)(二)=(31.5)(八)
001=1   ??
011=3   ??
为什么等一和三啊 请楼主说清楚点可以吗  谢谢啊
jankersky
[第6楼]   [ 回复时间:2009-02-06 15:37 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2009-01-05 13:11
011=3是因为 它是加法1+1+1的结果1+1=10 10+1=11 也就是011
mouse
[第7楼]   [ 回复时间:2009-02-06 18:04 ]   [引用]   [回复]   [ top ] 
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34
掌握二进制、十进制、十六进制的相互转换就可以学习汇编语言了:-)

这样对刚接触汇编的兄弟容易些~
abob
[第8楼]   [ 回复时间:2009-08-10 10:53 ]   [引用]   [回复]   [ top ] 
荣誉值:169
信誉值:0
注册日期:2008-08-19 16:07
不熟悉进制的兄弟仔细看看啊~
losingstars
[第9楼]   [ 回复时间:2009-08-11 12:00 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-06-03 22:05
才发现我把这个都忘了。。。
abob
[第10楼]   [ 回复时间:2009-10-30 11:22 ]   [引用]   [回复]   [ top ] 
荣誉值:169
信誉值:0
注册日期:2008-08-19 16:07
学会这个,汇编书要求的进制基础就具备了 ^_^
lrq241245
[第11楼]   [ 回复时间:2009-11-14 20:52 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-10-16 12:17
hao
moxang
[第12楼]   [ 回复时间:2009-11-15 16:23 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-11-15 16:06
学习了 好 这个好难哦
h1o0neday
[第13楼]   [ 回复时间:2009-11-16 21:10 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-11-16 17:05
为什么十->十六的时候小数部分
小数部分: 
0.625*16=10(即十六进制的A或a)  

0.625*16(十六后面为什么没有次数呢?)

还有为什么10就是十六进制的A或a呢

麻烦哪位老师帮忙讲解下。  我刚接触这个, 谢谢
xuer2016
[第14楼]   [ 回复时间:2012-10-27 17:27 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2012-10-16 16:56
学习了
yangen
[第15楼]   [ 回复时间:2012-11-01 22:56 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2012-10-30 11:12
讲得太全了,学习了
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved