上溢: - [max_count]
下溢: +[max_count]
例如:
char a=126 ,则a + 45 =126+45 =172-256 = -85
uchar a = 2 ,则 a - 100 = -98+256 = 158
a,b 基本类型相同时,有符号与无符号数的转换:
无符号a-->有符号b
if(a<max_count/2) b = a
else b = a - [max_count]
有符号数a-->无符号数b
if(a>0) b = a
else b = a + [max_count]
例1 char a = -119 uchar b = a则b = -119 +256 = 137
例2 uchar a = 137 char b = a 则 b = 137 - 256 = -119
例3 signed char chr = 127
int sum =127
chr+=10
sum+=chr
sum值是
思路 先把chr当成无符号数,chr +=10变成137 然后把chr转化为有符号数137-256 = -119 。-119 + sum (127) = 8.