当前位置:编程学习 > 汇编语言 >>

(汇编语言)已知[X]补=98H,则[X]补/2=____H 要详细解题过程

追问:为什么右移要补1呢
答案:答案是CCH
任何数,无论是原码,反码还是补码,当把他除以2时,只需要向右移一位即可
此时,设计到右移的时候左边到底补0还是补1的问题。很简单,
如果这个数是正数,那么右移的时候左边补0。
如果这个数时负数,那么右移的时候左边补1。
题目说X的补码是98H,显然大于7FH(127),所以一定是负数,这样的话,右移的时候要补1。
因此,98H=1001 1000B,右移一位,补1,得到:CCH=1100 1100B。

PS:如果是乘以2,那么只需要左移一位就可以,后面无论是正数还是负数,全部补0!
乘以4,左移两位,以此类推。除法亦是这样。
这是简便的做法,也是计算机的做法,你可以手工算,将98H求补,再十进制除以2,结果再转成16进制,并再求补,也可以到CCH
其他:有符号数除二相当于逻辑右移一位,[X]补=98H=10011000B,因此[X]补/2=11001100B=CCH 
或者将补码转化为原码十进制数位104,除以2为52,在转化为补码形式为11001100B=CCH。 [X]补=98H
[X]补右移一位就可以了 

上一个:请大侠做几道汇编语言的题,QQ:1642511765
下一个:对于我们学单片机的人来说,还有没有学汇编语言的必要?

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,