unsigned a = 30, b = 10;
cout << a - b << endl;
cout << b - a << endl;
程序运行结果:
20
4294967276
第二个 a和b均为无符号整数,结果为-20,无符号整数自动加模,int 位32位的编译器上,unsigned int 的最大值为2^32-1 = 4294967295 即0~ 4294967295为4294967296个整数,故加模结果为4294967276
注:带符号数和无符号数进行运算,会先转换为无符号数,出现负值时就会出现异常结果