| 分类: 汇编 |
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。

加载中…