加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

进位计数制转换总结

(2006-11-05 06:46:53)
分类: 汇编

1.2 不同基数的数之间的转换

  1.2.1 二进制数和十进制数之间的转换

  1.2.1.1 二进制数转换为十进制数

  各位二进制数与其对应权值的乘积之和即为与该二进制数相对应的十进制数。

file:///E:/%C3%87%C3%A5%C2%BB%C2%AA%C2%B4%C3%B3%C3%91%C2%A7%C2%BC%C3%86%C3%8B%C3%A3%C2%BB%C3%BA%C3%8F%C2%B5%C3%8D%C3%B8%C3%82%C3%A7%C2%BF%C3%8E%C2%B3%C3%8C/%C2%BB%C3%A3%C2%B1%C3%A0%C3%93%C3%AF%C3%91%C3%94%C2%B3%C3%8C%C3%90%C3%B2%C3%89%C3%A8%C2%BC%C3%86/download/211.101.171.24/courses/GD/jsj/GD_jsj_019b/images/htmls/lt.gif          例: 110011.101B=25+24+21+20+2-1+2-3
                    =51.625D

 
1.2.1.2 十进制数转换为二进制数
  降幂法:首先写出要转换的十进制数,其次写出所有小于此数的各位二进制权值,然后用要转换的十进制数减去与它最接近的二进制权值,如够减则减去并在相应位记以1;如不够减则在相应位记以0并跳过此位;如此不断重复,直到该数为0为止。

 file:///E:/%C3%87%C3%A5%C2%BB%C2%AA%C2%B4%C3%B3%C3%91%C2%A7%C2%BC%C3%86%C3%8B%C3%A3%C2%BB%C3%BA%C3%8F%C2%B5%C3%8D%C3%B8%C3%82%C3%A7%C2%BF%C3%8E%C2%B3%C3%8C/%C2%BB%C3%A3%C2%B1%C3%A0%C3%93%C3%AF%C3%91%C3%94%C2%B3%C3%8C%C3%90%C3%B2%C3%89%C3%A8%C2%BC%C3%86/download/211.101.171.24/courses/GD/jsj/GD_jsj_019b/images/htmls/lt.gif          例:将十进制数117转换为二进制数
                计算过程如下:
             小于117的二进制权为64 32 16 8 4 2 1
             file:///E:/%C3%87%C3%A5%C2%BB%C2%AA%C2%B4%C3%B3%C3%91%C2%A7%C2%BC%C3%86%C3%8B%C3%A3%C2%BB%C3%BA%C3%8F%C2%B5%C3%8D%C3%B8%C3%82%C3%A7%C2%BF%C3%8E%C2%B3%C3%8C/%C2%BB%C3%A3%C2%B1%C3%A0%C3%93%C3%AF%C3%91%C3%94%C2%B3%C3%8C%C3%90%C3%B2%C3%89%C3%A8%C2%BC%C3%86/download/211.101.171.24/courses/GD/jsj/GD_jsj_019b/images/tu/ch1/4.gif 
    
所以117的二进制为1110101。

  
除法:把要转换的十进制数的整数部分不断除以2,并记下余数,直到商为0为止。

 file:///E:/%C3%87%C3%A5%C2%BB%C2%AA%C2%B4%C3%B3%C3%91%C2%A7%C2%BC%C3%86%C3%8B%C3%A3%C2%BB%C3%BA%C3%8F%C2%B5%C3%8D%C3%B8%C3%82%C3%A7%C2%BF%C3%8E%C2%B3%C3%8C/%C2%BB%C3%A3%C2%B1%C3%A0%C3%93%C3%AF%C3%91%C3%94%C2%B3%C3%8C%C3%90%C3%B2%C3%89%C3%A8%C2%BC%C3%86/download/211.101.171.24/courses/GD/jsj/GD_jsj_019b/images/htmls/lt.gif          
例:将十进制数117转换为二进制数
                 计算过程如下:

             file:///E:/%C3%87%C3%A5%C2%BB%C2%AA%C2%B4%C3%B3%C3%91%C2%A7%C2%BC%C3%86%C3%8B%C3%A3%C2%BB%C3%BA%C3%8F%C2%B5%C3%8D%C3%B8%C3%82%C3%A7%C2%BF%C3%8E%C2%B3%C3%8C/%C2%BB%C3%A3%C2%B1%C3%A0%C3%93%C3%AF%C3%91%C3%94%C2%B3%C3%8C%C3%90%C3%B2%C3%89%C3%A8%C2%BC%C3%86/download/211.101.171.24/courses/GD/jsj/GD_jsj_019b/images/tu/ch1/5.gif
    
所以117的二进制为1110101。

  
1.2.2 二进制数和十六进制数之间的转换
 

    由于十六进制数的基数是2的幂,所以这两种数制之间的转换十分容易。

  file:///E:/%C3%87%C3%A5%C2%BB%C2%AA%C2%B4%C3%B3%C3%91%C2%A7%C2%BC%C3%86%C3%8B%C3%A3%C2%BB%C3%BA%C3%8F%C2%B5%C3%8D%C3%B8%C3%82%C3%A7%C2%BF%C3%8E%C2%B3%C3%8C/%C2%BB%C3%A3%C2%B1%C3%A0%C3%93%C3%AF%C3%91%C3%94%C2%B3%C3%8C%C3%90%C3%B2%C3%89%C3%A8%C2%BC%C3%86/download/211.101.171.24/courses/GD/jsj/GD_jsj_019b/images/htmls/lt.gif          
例: 0011  0101  1011 1111
                 3   5   B   F
                 即 0011010110111111B = 35BFH

 file:///E:/%C3%87%C3%A5%C2%BB%C2%AA%C2%B4%C3%B3%C3%91%C2%A7%C2%BC%C3%86%C3%8B%C3%A3%C2%BB%C3%BA%C3%8F%C2%B5%C3%8D%C3%B8%C3%82%C3%A7%C2%BF%C3%8E%C2%B3%C3%8C/%C2%BB%C3%A3%C2%B1%C3%A0%C3%93%C3%AF%C3%91%C3%94%C2%B3%C3%8C%C3%90%C3%B2%C3%89%C3%A8%C2%BC%C3%86/download/211.101.171.24/courses/GD/jsj/GD_jsj_019b/images/htmls/lt.gif           例: A    1    9   C
                1010  0001  1001 1100
                 即 A19CH = 1010000110011100B

1.2.3 十六进制数和十进制数之间的转换

  1.2.3.1 十六进制数转换为十进制数

 
  各位十六进制数与其对应权值的乘积之和即为与该十六进制数相对应的十进制数。

 
file:///E:/%C3%87%C3%A5%C2%BB%C2%AA%C2%B4%C3%B3%C3%91%C2%A7%C2%BC%C3%86%C3%8B%C3%A3%C2%BB%C3%BA%C3%8F%C2%B5%C3%8D%C3%B8%C3%82%C3%A7%C2%BF%C3%8E%C2%B3%C3%8C/%C2%BB%C3%A3%C2%B1%C3%A0%C3%93%C3%AF%C3%91%C3%94%C2%B3%C3%8C%C3%90%C3%B2%C3%89%C3%A8%C2%BC%C3%86/download/211.101.171.24/courses/GD/jsj/GD_jsj_019b/images/htmls/lt.gif           例:8AB4H=8×163+10×162+11×161+4×160
                     =32768+2560+176+4
                     =35508D

 1.2.3.2 十进制数转换为十六进制数

  
转换方法与十进制转换为二进制的方法类似。
  降幂法:首先写出要转换的十进制数,其次写出小于该数的十六进制权值,然后找出该数中包含多少个最接近它的权值的倍数,这一倍数即对应位的值,用原数减去此倍数与相应位权值的乘积得到一个差值,再用此差值去找低一位的权值的倍数,如此反复直到差值为0为止。


 file:///E:/%C3%87%C3%A5%C2%BB%C2%AA%C2%B4%C3%B3%C3%91%C2%A7%C2%BC%C3%86%C3%8B%C3%A3%C2%BB%C3%BA%C3%8F%C2%B5%C3%8D%C3%B8%C3%82%C3%A7%C2%BF%C3%8E%C2%B3%C3%8C/%C2%BB%C3%A3%C2%B1%C3%A0%C3%93%C3%AF%C3%91%C3%94%C2%B3%C3%8C%C3%90%C3%B2%C3%89%C3%A8%C2%BC%C3%86/download/211.101.171.24/courses/GD/jsj/GD_jsj_019b/images/htmls/lt.gif             
例:将十进制数48956转换为十六进制数
                    计算过程如下:
                 小于48956的十六进制权值为 4096  256  16  1

                file:///E:/%C3%87%C3%A5%C2%BB%C2%AA%C2%B4%C3%B3%C3%91%C2%A7%C2%BC%C3%86%C3%8B%C3%A3%C2%BB%C3%BA%C3%8F%C2%B5%C3%8D%C3%B8%C3%82%C3%A7%C2%BF%C3%8E%C2%B3%C3%8C/%C2%BB%C3%A3%C2%B1%C3%A0%C3%93%C3%AF%C3%91%C3%94%C2%B3%C3%8C%C3%90%C3%B2%C3%89%C3%A8%C2%BC%C3%86/download/211.101.171.24/courses/GD/jsj/GD_jsj_019b/images/tu/ch1/6.gif
  
所以48956的十六进制为BF3CH。

  
除法:把要转换的十进制数的整数部分不断除以16,并记下余数,直到商为0为止。
  
 file:///E:/%C3%87%C3%A5%C2%BB%C2%AA%C2%B4%C3%B3%C3%91%C2%A7%C2%BC%C3%86%C3%8B%C3%A3%C2%BB%C3%BA%C3%8F%C2%B5%C3%8D%C3%B8%C3%82%C3%A7%C2%BF%C3%8E%C2%B3%C3%8C/%C2%BB%C3%A3%C2%B1%C3%A0%C3%93%C3%AF%C3%91%C3%94%C2%B3%C3%8C%C3%90%C3%B2%C3%89%C3%A8%C2%BC%C3%86/download/211.101.171.24/courses/GD/jsj/GD_jsj_019b/images/htmls/lt.gif              例:将十进制数48956转换为十六进制数
                    计算过程如下:
               file:///E:/%C3%87%C3%A5%C2%BB%C2%AA%C2%B4%C3%B3%C3%91%C2%A7%C2%BC%C3%86%C3%8B%C3%A3%C2%BB%C3%BA%C3%8F%C2%B5%C3%8D%C3%B8%C3%82%C3%A7%C2%BF%C3%8E%C2%B3%C3%8C/%C2%BB%C3%A3%C2%B1%C3%A0%C3%93%C3%AF%C3%91%C3%94%C2%B3%C3%8C%C3%90%C3%B2%C3%89%C3%A8%C2%BC%C3%86/download/211.101.171.24/courses/GD/jsj/GD_jsj_019b/images/tu/ch1/7.gif
   所以48956的十六进制为BF3CH。

0

阅读 收藏 喜欢 打印举报/Report
前一篇:事务
后一篇:ASCII码表
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有