见下面的代码,数据在内存中的有符号和无符号表示形式?
signed int a = 136;
unsigned int b = -120;
unsigned sum = a + b;
printf("%d ", sum);
输出 - 16
据我所知,的
136 - ox88
-120 - ox88
1),所以它应该打印0 ISN”
十六进制表示T IT?
2)如何在存储器中将-ve(带符号)的数字表示为unsigned int?是这样的,
-120 = 0xffffff88
136 = 0x00000088
如果是,在unsigned int的范围内可能有等于值“0xffffff88”,所以它会冲突给对方?
谁能解释以实例的概念?(符号和无符号表示)
哪个endianess? –
先阅读[二补](http://en.wikipedia.org/wiki/Two's_complement)。 –
136 - 120 = 16.有什么令人惊讶的呢?二进制表示在这里不起作用。 – Suma