关于0x01和~0x01
说实话,我不清楚这个问题发到这里对不对,因为我是用C#做的测试,但这个问题我又又是在学习单片机的时候出现的
请各位帮帮忙解答一下
情况一:无符号数
uint temp1 = 0x01;
uint temp2 = ~temp1;
textBox1.Text = temp1.ToString() + "\r\n" + temp2.ToString();
这里输出的是1和4294967294,就是按位取反,这个我是能理解的
但是
情况二:有符号数
int temp1 = 0x01;
int temp2 = ~temp1;
textBox1.Text = temp1.ToString() + "\r\n" + temp2.ToString();
这里输出的是1和-2,符号我也能理解,但为什么是-2呢?