一个short变量从32767+1变成了−32768!
同样,对于一个unsigned short变量,将其设置为0并减去后,它变成了65535。
可以看出,这些整型变量的行为就像里程表。如果超越了限制,其值将为范围另一端的取值(参见图)。C++确保了无符号类型的这种行为;但C++并不保证符号整型超越限制(上溢和下溢)时不出错,而这正是当前实现中最为常见的行为。
一个short变量从32767+1变成了−32768!
同样,对于一个unsigned short变量,将其设置为0并减去后,它变成了65535。
可以看出,这些整型变量的行为就像里程表。如果超越了限制,其值将为范围另一端的取值(参见图)。C++确保了无符号类型的这种行为;但C++并不保证符号整型超越限制(上溢和下溢)时不出错,而这正是当前实现中最为常见的行为。