#include
int main(void)
/*在vc++中的輸出結果是:
0256
press any key to continue
這說明了 語句 unsigned char 申請的空間 所能儲存的數字的範圍(也就是unsigned char型別所能表示的數的範圍)是 0 — 255(十進位制) 一共 256(2的8次方)個
如果說你給 unsigned char 型別的變數賦給大於 255的值 或者 小於0 的值 的話,就會出現溢位,它的規則就像時鐘一樣,時鐘中的最大數字是12,如果
是13點的話,那麼時針就會指向1,同樣的道理,如果你給 unsigned char 型別的變數 賦 256的話,那麼實際上 這個變數存的值為 0 ,在這個例子當中
int 型別的變數所能表示的值 的範圍為 -2147483648 — 2147483647 (十進位制) 而256 顯然在範圍之類,所以輸出的就是 256
同樣的道理
unsigned char i = 0;
int a;
a = i - 1;
i = a;
printf("%d\n",i);
printf("%d\n",a);
輸出結果為 255
-1*/
浮點值的上溢和下溢(其他數值型別相似)
上文說到,float的取值範圍為10 37 10 38。如果數字大小超過10 38會怎麼樣呢?通過本文標題,我們大概可以猜出,這就是乙個浮點值的上溢 emmmm 我彷彿是個沙雕 當計算導致數字過大,超過當前型別的表達範圍時,就會發生上溢。現在c語言規定,會給toobig賦乙個值表示無窮大的特定值,而...
char 與 unsigned char的本質區別
原文 在c中,預設的基礎資料型別均為signed,現在我們以char為例,說明 signed char與unsigned char之間的區別 首先在記憶體中,char與unsigned char沒有什麼不同,都是乙個位元組,唯一的區別是,char的最高位為符號位,因此char能表示 128 127,...
char 與 unsigned char的本質區別
在c中,預設的基礎資料型別均為signed,現在我們以char為例,說明 signed char與unsigned char之間的區別 首先在記憶體中,char與unsigned char沒有什麼不同,都是乙個位元組,唯一的區別是,char的最高位為符號位,因此char能表示 128 127,uns...