补码计算问题有一道关于补码运算的问题,若[X]补=CCH,机器字长问8位,则[X/2]补=多少,它的答案是E6H,但我算出来是E7H,我不知道怎么回事,我的计算步骤是把X算出来,X=50,那么[X/2]补是E7H,请哪个为什么我算错的告诉我,请把过程说出来,讲的详细一点,在这里先谢谢了!你怎么和答案说的一样啊,为什么右移后符号位不变呢,是不是因为X是个负数啊,如果是的话,那么我死算,把X算出来,再把它变为补码也应该对啊,为什么我算出来是E7啊?x/2就是表示X除以2吗,还是表示X右移一位呢?
问题描述:
补码计算问题
有一道关于补码运算的问题,若[X]补=CCH,机器字长问8位,则[X/2]补=多少,它的答案是E6H,但我算出来是E7H,我不知道怎么回事,我的计算步骤是把X算出来,X=50,那么[X/2]补是E7H,请哪个为什么我算错的告诉我,请把过程说出来,讲的详细一点,在这里先谢谢了!
你怎么和答案说的一样啊,为什么右移后符号位不变呢,是不是因为X是个负数啊,如果是的话,那么我死算,把X算出来,再把它变为补码也应该对啊,为什么我算出来是E7啊?x/2就是表示X除以2吗,还是表示X右移一位呢?
答
[X/2]补 只要把 [X]补 右移一为便可
cc = 11001100 右移一位符号位不变 11100110 = e6