/*
练习2.3:读程序写结果
unsigned u=10, u2=42;
std::cout<<u2-u<<std::endl;//32
std::cout<<u-u2<<std:endl;
//把负数转成无符号的数,想当于把这个负数加上无符号数的模:32位机器,模是2^32=4294967296
//u-u2=-32, 输出的值为4294967296-32=4294967264
int i=10, i2=42;
std::cout<<i2-i<<std::endl;//32
std::cout<<i-i2<<std::endl;//-32
std::cout<<i-u<<std::endl;//0
std::cout<<u-i<<std::endl;//0
*/
#include "TouWenJian_2.h"
int main()
{
unsigned u=10, u2=42;
cout<<u-u2<<endl;
int i=10, i2=42;
cout<<i2-i<<endl;//32
cout<<i-i2<<endl;//-32
cout<<i-u<<endl;//0
cout<<u-i<<endl;//0
}
C++Primer第五版第二章练习2.3(含2.4)
最新推荐文章于 2025-12-18 23:25:27 发布
文章展示了在C++中,使用`unsigned`和`int`类型进行减法操作时的不同结果,特别强调了无符号数与负数相减时会自动转换为模运算。
911

被折叠的 条评论
为什么被折叠?



