資料溢位的分析與計算

2021-06-06 17:51:20 字數 1457 閱讀 1015

在計算機中,當要表示的資料超出計算機所使用的資料的表示範圍時,則產生資料的溢位。要想很好的避免這個問題,首先我們需要了解常用的資料型別的取值範圍:

1.c語言的基本資料型別及其取值範圍:

資料型別              所佔位數           取值範圍

[signed]  char              8                -2^7 ~ 2^7-1

unsigned char             8                0 ~ 2^8-1  

[signed] short             16               -2^15 ~ 2^15-1

unsigned short           16                 0 ~ 2^16-1

[signed] int                 32              -2^31 ~ 2^31-1

unsigned int               32               0 ~ 2^32-1

[signed] long            32              -2^31 ~ 2^31-1

unsigned long          32                0 ~ 2^32-1

float                         32              -3.4*10(-38)~3.4*10(38)

double                    64              -1.7*10(-308)~1.7*10(308)

2.溢位後數值計算:

[max_count]表示型別能表示的資料個數,如char型別(8位)可表示2^8=256

(1)上溢:-[max_count].

(2)下溢:+[max_count]

例1:上溢 char a = 126,則a+45 = ? uchar b = 252 則 b + 100 = ?

解:a+45 = 126 + 45 = 171-256 = -85

b+100 = 252 + 100 =352-256 = 96

例2:下溢 char a = 126,則a+45 = ? uchar b = 2 則 b -100 = ?

解:a+45 = 126 + 45 = 171-256 = -85

b-100 = 2 - 100 = -98+256 =158

3.有符號數和無符號數的轉換:

(1)無符號a->有符號b:

if(a<[max_count]/2)

else

(2)有符號a->無符號b:

if(a>=0)

else

這個就不舉例子了,讀者可以自己驗證!!!

資料溢位相關計算

整數反轉 例 142 241 14 2 1 24 0 241 存在問題 反轉後資料溢位 int型的數值範圍是 2147483648 2147483647 param x return public intreverse int x res res 10 x 10 x x 10 return res ...

Matlab資料分析與計算

1.資料統計分析 max最大值min 最小值sum 求和prod 求積mean 平均數median 中值cumsum 累加cumprod 乘積std 標準差corrcoef 相關係數 sort 排序1.1 最大值和最小值 1.2 求和與求積 1.3 平均值和中值 1.4 累加和與累乘積 1.5 標準...

段落內容溢位的分析

最近在做網頁時,對乙個 p 元素進行測試,出現了下面這種情況。p 元素明明完全在白色框內部,p 元素中的文字卻跑到了外面。百思不得其解。經過查詢,終於明白這種情況與 css 的換行設定有關。瀏覽器預設的換行方式是在單詞斷點處換行,而像上面這樣一連串的字元會被瀏覽器認定為乙個單詞,所以不會換行。這種情...