ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

C++ Primer Notes

C++ Primer Notes

unsigned类型

当计算中既有无符号数,又有int值时,结果会转化为无符号数

unsigned int i1 = 10;
int i2 = 42;
std::cout << i1 - i2 << std::endl; // 结果为4294967264
std::cout << i2 - i1 << std::endl; // 结果为32

计算过程:
i1:
0000 0000 0000 0000 0000 0000 0000 1010

i2:
0000 0000 0000 0000 0000 0000 0010 1010

i1 - i2:
1111 1111 1111 1111 1111 1111 1110 0000 = 4294967264

unsigned char c = -1;
std::cout << int(c) << std::endl; // 结果为255

计算过程:
-1:
源码:1000 0001
反码:1111 1110(符号位不变,其他位反转)
补码:1111 1111(反码+1)
1111 1111 = 255

返回列表