进制转换
- 简述二进制码、十进制码、BCD码、十六进制码转换的算法
- 把四字节 BCD 码 5287 转换为十六进制码 14A7H
简述二进制码、十进制码、BCD码、十六进制码转换的算法
①二进制转十进制:把二进制的“1”,从右边第一个开始按2的1次方,2的2次方…,相加即得十进制数
②二进制转十六进制:从右往左,每4个作为一个数,不足4个的在前面补0.
③十进制转二进制
方法一:除2取余法。
方法二:用十进制减去2的次方,直到整除。
④十六进制转二进制:十六进制数通过除2取余法,得到二进制数,对每个十六进制为4个二进制,不足时在最左边补零。
⑤二进制转BCD码:将待转换的二进制码从最高位开始左移BCD的寄存器(从高位到低位排列),每移一次,检查每一位BCD码是否大于4,是则加上3,否则不变。左移8次后,即完成了转换。
把四字节 BCD 码 5287 转换为十六进制码 14A7H
5287=7+10*(8+10*(2+105))=(510+2)100+(810+7)
MOV 40H,#5
MOV 41H,#2
MOV 42H,#8
MOV 43H,#7
MOV A,40H
MOV B,#10
MUL AB
ADD A,41H
MOV B,#100
MUL AB
MOV R3,B
MOV R2,A
CLR A
MOV A,42H
MOV B,#10
MUL AB
ADD A,43H
ADD A,R2
MOV R2,A
MOV A,B
ADDC A,R3
MOV R3,A
END
最后转换结果在R3,R2中,为14A7。