. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->基础知识
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  进制之间的乘法?  [待解决] 回复[ 5次 ]   点击[ 567次 ]  
fang
[帖 主]   [ 发表时间:2009-10-29 18:16 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-12-30 12:38
我只懂简单的进制转换,能不能详细的说一下。
十进制是逢十进一,十六进制是逢十六进一,同理二进制是逢二进一。还有进制之间的乘法?
abob
[第1楼]   [ 回复时间:2009-10-30 10:35 ]   [引用]   [回复]   [ top ] 
荣誉值:169
信誉值:0
注册日期:2008-08-19 16:07
进制之间的乘法?
------------
比较基础的方法是都统一换算成十进制计算,然后再转换到需要的进制。(数的大小是定的,进制的表示只是表现的形式而已。)

还有一个小技巧是,如果其中一个乘数是基数的xx次方,计算比较简单。
比如:
     十进制乘法3*10,因为10等于十进制基数10的1次方。所以结果就等于30了。
同理:
     十六进制乘法3h*10h,因为10h等于十六进制基数16的1次方。所以结果就等于30h了。

用十进制计算的思路去分析其他进制的计算,自己就可以摸索出一些技巧来。
thedaydreamwang
[第2楼]   [ 回复时间:2009-11-25 02:58 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-10-07 14:18
今天试了下只有20h*20h =400h的时候正确
   25h*25h=625h 错误  25h*25h=37*37= 1369  625h=1573两个结果不一样
25h*25h=(20h+5)*(20h+5)=400h+25+5(20h)=400h+ 25+5*2*16=400h +185=4B8h       185=B8h

总结问题出在5*(20h)上面这个时候需要经过转换才能计算不然结果就有了偏差
thedaydreamwang
[第3楼]   [ 回复时间:2009-11-25 02:59 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-10-07 14:18
呵呵少乘了一个2
thedaydreamwang
[第4楼]   [ 回复时间:2009-11-25 03:15 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-10-07 14:18
185*2=370= 182h   最后的结果为182h+400h =582h
25h*25h=582h
xshz
[第5楼]   [ 回复时间:2010-08-29 15:26 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-08-24 22:41
25h*25h =25h*20h + 25h*5h  
  
          = 4a0h   + b9h       (满16进1)
        
          = 559h     
 
            =5*(16*16)+5*(16)+9*(1) = 1369   (16进制转换10进制)

刚学的,供参考。
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved