经典汇编语言教程:10.3 数据转换程序举例
5160 点击·0 回帖
![]() | ![]() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() | 例10.7是用“用16位除10”的方法从低向高依次得到每位的数值,但若待输出的数据是32位,用10除之后,其商很可能会超过16位,所以,不能简单地引用例10.7的方法来输出32位二进制。 假设:32位二进制数Z为A×216+B,其中:A和B都是16位二进制数。 用10去除A,得:A=A1×10+A2,于是, 图片:10-9.gif ![]() 假设A2×216+B被10除后所得的商和余数分别为B1和C1(B1≥0,C1≥0)。 利用式(1)和“A2<10”,我们不难看出:Z的个位就是C1和B1<216。 令Z1=A1×216+B1,显然,Z1就是Z/10所得到的商。 对于Z1,再利用式(1)得到商Z2和C2。……,重复上面的步骤,直到所得商为0为止。 下面的例10.9就是利用上面方法来输出32位二进制数值。 例10.9编写一个子程序,该子程序能把32位二进制变量的数值以十进制形式输出出来。若该数值为负数,则需要输出负号"-",否则,不输出符号。
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() | ![]() |