简述二进制码、十进制码、BCD码、十六进制码转换的算法

进制转换

  • 简述二进制码、十进制码、BCD码、十六进制码转换的算法
  • 把四字节 BCD 码 5287 转换为十六进制码 14A7H

简述二进制码、十进制码、BCD码、十六进制码转换的算法

①二进制转十进制:把二进制的“1”,从右边第一个开始按2的1次方,2的2次方…,相加即得十进制数
简述二进制码、十进制码、BCD码、十六进制码转换的算法_第1张图片
②二进制转十六进制:从右往左,每4个作为一个数,不足4个的在前面补0.
简述二进制码、十进制码、BCD码、十六进制码转换的算法_第2张图片
③十进制转二进制
方法一:除2取余法。
方法二:用十进制减去2的次方,直到整除。
简述二进制码、十进制码、BCD码、十六进制码转换的算法_第3张图片
④十六进制转二进制:十六进制数通过除2取余法,得到二进制数,对每个十六进制为4个二进制,不足时在最左边补零。
简述二进制码、十进制码、BCD码、十六进制码转换的算法_第4张图片
⑤二进制转BCD码:将待转换的二进制码从最高位开始左移BCD的寄存器(从高位到低位排列),每移一次,检查每一位BCD码是否大于4,是则加上3,否则不变。左移8次后,即完成了转换。
简述二进制码、十进制码、BCD码、十六进制码转换的算法_第5张图片

把四字节 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。
简述二进制码、十进制码、BCD码、十六进制码转换的算法_第6张图片

你可能感兴趣的:(进制转换,二进制,单片机,汇编)