2025-11-08 05:35:16
先算下ffffh减20000h等于多少。把这两个数都看成十六进制,先对齐位数。比如20000h是5位,而ffffh是4位,前面补个0变成0ffffh。然后从个位开始减,f减0等于f,d减0等于d,f减0等于f,0减2不够减,得从前面借位。借位后变成e,然后e减2等于c,剩下的高位继续借位,得到dffffh。不过这里可能哪里算错了,得再检查下。
其实正确答案是dffffh。先看个位:f(15)减0得f,没问题。十位d(13)减0得d。百位f(15)减0得f。千位0减2不够,要向万位借1。万位原本是0,借了之后变成f(15),然后千位变成e(14)。现在e(14)减2得c(12)。所以最终结果是dffffh。用计算器验证:0xffff=65535,0x20000=81920,65535-81920=-16385。转换成32位有符号数,-16385的补码是0xfffff1ffff,即十进制的-16385。所以正确结果确实是dffffh。中间借位过程容易出错,特别是高位借位后要记得减1。比如万位借了1之后变成f,然后千位变成e,这时候e减2得c,剩下的高位保持f不变。这样一步步算下来,结果就对了。
本题链接: