c語言總結 1 資料在記憶體中的儲存

2021-09-24 21:57:57 字數 918 閱讀 2537

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表示 負 而數值位三種表示方法各不相同。原碼直接將二進位制按照正負數的形式翻譯成二進位制就可以。反碼將原碼的符號位不變,其他位依次按位取反就可以得到了...