C++ Primer中文版第五版研读笔记 - 结果等于这个负数加上无符号数的模

在这里插入图片描述
在研究经典教程C++ Primer时,迷惑于负整数如何转化为无符号数。
文中说“把负数转换成无符号数类似于直接给无符号数赋一个负值,结果等于这个负数加上无符号数的模"。

经过一定的尝试断句和搜索博客后,后半句是应该这样:结果,负数,无符号数的模,结果 == 负数 + 无符号数的模。

无符号数的模指的是,无符号数的计量范围。
在32位的编译器上,unsigned int 的最大值为4294967295,再加上0,一共4294967296个整数,即32位无符号数的模为4294967296(2^32)
i 为 -42 ,转换为32位无符号数为 4,294,967,254,然后加上10即得4,294,967,264.

猜你喜欢

转载自blog.csdn.net/guchengyixin/article/details/106598004