不要化成2进制和十进制,直接算。求解法,主要讲一下最高位不够减怎么借位的问题,符号的问题。过程稍微详细一些,谢谢了
要计算1F00H-2002H,可以先将2002H取反得到DFFDH,然后加1得到DFFE,最后与1F00H相加得到FFFEH。由于计算机字长为16位,所以最高位的进位会被忽略。因此,最终结果为FFFEH。这就是为什么在高位借1后再进行运算是正确的原因。按照补码来计算了,下面有一个回答,在固定字长的情况下,虽然前面没有数字了,但是还可以借,运算后借的位去掉就行。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2019-12-19
不用字母,从右到左,0-2借一位变成16-2=14即E。(0-1这个一是被借去的)-0借一位变成(16-1)-0=15即F。(F-1)-0=(15-1)-0=14即E。1-2借一位变成16+1-2=15即F。那么最终就是FEFE
本回答被提问者采纳第2个回答 2019-12-19
16进制有H?算了也不影响。
比如,20-1F:
0减f,不够,借高位1就是当前位的16,减F即15,余1;
高位1减1得0;结果=1。
这种负数的就换过来,2002H-1F00H,得1020,再加个负号,即-1020。追问
比如,20-1F:
0减f,不够,借高位1就是当前位的16,减F即15,余1;
高位1减1得0;结果=1。
这种负数的就换过来,2002H-1F00H,得1020,再加个负号,即-1020。追问
H就是16进制的意思啊,兄弟。答案是FEFEH,是存储器中的地址形式,不用负数,F开头的
追答fefe的十进制就是-258,即十六进制的-102。而且内存地址有负数的?你确定你的负数有现实意义?
我是按数学意义算的。真要按计算机的编码,你就要转换了,因为计算机的负数是没有负号的,要用补码反码那一套来表示的。