公式溢出計算過程

來源:魅力女性吧 1.36W
公式溢出計算過程

上溢: - [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.

熱門標籤