int check_sys()
un; un.i = 1;
return un.c;
}int main()
之所以用聯合體是因為聯合體的成員共用同一塊記憶體空間
char a = -1;
signed char b = -1;
unsigned char c = -1;
printf("%d %d %d", a, b, c);
結果為-1 -1 255,因為unsigned char的範圍為0-255,不可能為負數,-1為0的前乙個,因此為255
unsigned int i;
int main()
system("pause");
return 0;
}
結果為死迴圈,因為i為unsigned int 型,永遠大於0.
int main()
結果為n的值為9,*pfloat的值為0.000000,num的值為1091567616,*pfloat的值為9.000000
因為二進位制浮點數可以表示成(-1)^s *m *2^e, (-1) ^ s表示符號位,s=0,表示正數,s=1,表示負數,m表示有效數字,2^e表示指數字.(對於32位的浮點數,最高的一位是符號位s,接著的8位是指數e,剩下的23位為有效數字m.對於64位浮點數,最高的一位是符號位s,接著的11位為指數e,剩下的52位為有效數字m.)
e為乙個無符號整數,但是科學計數法中是可以出現負數的,因此存入記憶體時e的真實值必須加上乙個中間數,對於8位的e,中間數為127,對於11位的e,中間數為1023.
e從記憶體中取出又能分為三種情況:
C語言 資料在記憶體中的儲存
字元型資料 1.字元與字元 把字元的相對應的ascii碼 整數,對映關係見ascii碼表 放到儲存碼單元中,而這些ascii 值在計算機中同樣以二進位制補碼的形式存放的。2.字元變數 字元型資料的儲存空間和值的範圍 32位操作平台 型別位元組數 取值範圍 signed char 有符號字元數 1 2...
資料在記憶體中的儲存c語言
基本內建型別 char 字元資料型別 short 短整型 int 整形 long 長整型 long long 更長的整形 float 單精度浮點數 double 雙精度浮點數使用這個型別開闢的記憶體空間大小 大小決定了適用範圍 如何看待記憶體空間的視角。在32位平台下,任何指標型別都只佔4個位元組。...
C語言 資料在記憶體中的儲存
得從整形在記憶體中的儲存說起 計算機中的有符號數有三種表示方法,即原碼 反碼和補碼。三種表示方法均有符號位和數值位兩部分,符號位都是用0表示 正 用1表示 負 而數值位三種表示方法各不相同。原碼直接將二進位制按照正負數的形式翻譯成二進位制就可以。反碼將原碼的符號位不變,其他位依次按位取反就可以得到了...