【发布时间】:2014-03-28 19:07:36
【问题描述】:
我不确定带符号的十六进制除以十进制。
long 输入的fff0bdc0 除以1000L 怎么会变成fffffc18?
long a = 0xfff0bdc0;
a = a/1000L;
UARTprintf("a = %x\n", a);
打印结果:a = fffffc18
谢谢,
晋
【问题讨论】:
-
更好地展示你的代码。结果应该是 0x41854f。
-
不,不应该!当你除以一个负数时,你是如何得到一个正数的?
-
嗯,我在考虑 64 位。在一个 32 位长的平台上,你是对的,它会是负数。