数据溢出
数据类型有范围,如果超出这个范围会发生什么事情?
底层就是数据存储的原理
计算方式:
将数据范围看成是一个环形,数据增长到最大,然后跳到最小在增长 -一圈总个数,如果不够继续减,直到见到范围内为止
数据减小到最小,然后跳到最大在减小 +一圈总个数,如果不够继续加,直到见到范围内为止
char a = 200; // char型范围是-128~127 char一圈有256个数
200 - 256 == -56
char b = 400; // char型范围是-128~127 char一圈有256个数
400 - 256 = 144
144 - 256 = -112
char c = -300; // char型范围是-128~127 char一圈有256个数
-300 + 256 == -44
unsigned char d = 250; // unsigned char 的范围:0 ~ 255
char t = d * 4; // 250 * 4 == 1000 char型范围是-128~127 char一圈有256个数
1000 - 256 = 744
744 - 256 = 488
488 - 256 = 232
232 - 256 = -24
short money = 40000; // short范围:-32768~32767 一圈65536
40000 - 65536 = -25536;