带符号类型和不带符号类型的char
尽管字符型有三种char、signed char、unsigned char,需要注意的是char和signed char并不一样,尽管字符型有三种,但是表现形式只有两种:带符合的和不带符合的,char类型会表现为上述两种形式的一种,具体哪种由编译器决定
切记混用两者,带符号会转换为无符号的
例如a*b,如果int a=-1,unsigned b=1,a的值会转换为无符号型,这我的机器上结果为4294967295
无符号类型为负时的转换
例:计算
#include <iostream>
using std::cout;
using std::endl;
int main()
{
unsigned u=10,u2=42;
cout << u-u2 << endl;
return 0;
}
u-u2为-32,int占用32位,最终结果为-32加上无符号数的模,输出结果为2^32-32=4294967264