20、类型转换(P32、P33、P34)
1、”结果等于这个负数加上无符号数的模“
unsigned int u = 10;
int i = -42;
std::cout << u + i << std::endl;
如果 int
是32位,unsigned int
的范围是从 0 到 4,294,967,295,而 int
的范围是从 -2,147,483,648 到 2,147,483,647。
当执行 u + i
,其中 u
是 10,i
是 -42 时,结果应该是 10 - 42,等于 -32。但是,由于 unsigned int
的范围是无符号的,所以结果会被解释为无符号整数,即 4,294,967,296 - 32,因此答案是 4,294,967,264。
2.1.3
2.4.2
2.4.3
2.4.4
2.6.3
3.5.3
4.11
4.11.3
6.1.3
6.2.4
6.4
15.2.3
19.1.1
19.2