'\xe0'表示的是十六进制,将他用十进制输出时,竟然出现了意想不到的结果,如果没在 VC 里运行单靠用笔来算的话,那么得到的结果是 224,因为 14*16=224,但是在 VC 里运行的结果却是-32,这是为什么呢,原来在计算机内部 224 以二进制形式存储的是 11100000,最高位是 1,那么计算机会认为是一个负数,而不是我们算得认为的 224,既然是一个负数,那么计算机输出时就要以原码的形式输出,11100000的原码是 10100000,他的十进制是 32,别忘了他的最高位表示的是符号位,所以输出的就是-32 了。这个结果如果仅靠笔算的话还真不好算,因为计算机毕竟不是人,他的算法规则是一定的,不管数怎么变他都按他的预设好的算法规则来
|