本文目錄一覽:
- 1、在C語言中各種數據類型各佔多少位
- 2、C語言中128L與128所佔存儲空間的區別?
- 3、c語言 1個位元組 範圍為什麼是 -128 — 127,-128怎麼算的
- 4、如何在c語言中構造一個128位數
在C語言中各種數據類型各佔多少位
(一)32位平台:
分為有符號型與無符號型。
有符號型:
short 在內存中佔兩個位元組,範圍為-2^15~(2^15-1)
int 在內存中佔四個位元組,範圍為-2^31~(2^31-1)
long在內存中佔四個位元組,範圍為-2^31~2^31-1
無符號型:最高位不表示符號位
unsigned short 在內存中佔兩個位元組,範圍為0~2^16-1
unsigned int 在內存中佔四個位元組,範圍為0~2^32-1
unsigned long在內存中佔四個位元組,範圍為0~2^32-1
實型變數:
分單精度 float 和雙精度 double 兩種形式:
float:佔四個位元組,提供7~8位有效數字。
double: 佔八個位元組,提供15~16位有效數字。
(二)16位平台:
1)整型(基本型):類型說明符為int,在內存中佔2個位元組。
2)短整型:類型說明符為short int或short。所佔位元組和取值範圍均與整型(基本型)相同。
3)長整型:類型說明符為long int或long,在內存中佔4個位元組。
無符號型:類型說明符為unsigned。
無符號型又可與上述三種類型匹配而構成:
各種無符號類型量所佔的內存空間位元組數與相應的有符號類型量相同。但由於省去了符號位,故不能表示負數。
實型變數:
分為單精度(float型)、雙精度(double型)和長雙精度(long double型)三類。
單精度型佔4個位元組(32位)內存空間,其數值範圍為3.4E-38~3.4E+38,只能提供七位有效數字。
雙精度型佔8 個位元組(64位)內存空間,其數值範圍為1.7E-308~1.7E+308,可提供16位有效數字。
長雙精度型16 個位元組(128位)內存空間,可提供18-19位有效數字。
C語言中128L與128所佔存儲空間的區別?
在32位的編譯系統中他們兩個都是佔四個位元組的存儲空間。
如果是在16位的編譯系統中,他們所佔的存儲空間分別是4和2個位元組。
c語言 1個位元組 範圍為什麼是 -128 — 127,-128怎麼算的
正數一個位元組最大只能是127,128超過了一個位元組能表示的最大值,127是01111111,加1, 00000001等於
10000000,最高為是2的7次方等於128,由於一個位元組的最大值是127,所以128就只能是-128,但是這裡的符號位應該是補全的碼,由於只有一個位元組看不到
如何在c語言中構造一個128位數
在C語言中,並沒有任何數據類型可以表示精確的128位數。所以要表示128位數,就必須用數組模擬。比如,用字元數組模擬,每位字元表示一位數,使用’0’~’9’表示各個位上的數值。
例如:
char num[129] = “12345678……”;
表示數字12345678。 由於128位過長,就不舉128位的例子了。
輸入輸出均可以用字元串的方式。
另外,做計算的話,就必須自己寫函數了,如加減乘除模除等,對於這類實現,在演算法中稱為大數計算,如果需要,可以對此進行搜索,有很多優秀演算法。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/185035.html