【答案】
計算機是用二進位制來表示浮點數和整數的。在十進位制裡,0.1是個簡單、精確的小數,但是轉換二進位制表示卻是迴圈小數0.0001100110011…。因此,3.2在十進位制可以準確地表示,在二進位制卻不能。但二進位制轉換為十進位制時,該數值便就不一致了。
double a,b;
//…if(a==b)
【答案】
不相等。
解決:#include
if((fabs(a-b)<=epsilon*fabs(a)))
bool b=-7;
bool b=-7;
cout
1 -7
滿足b==true條件
請按任意鍵繼續. . .
【分析】
區別:(1)bool具有兩個值true(1)或者false(0)。bool也具有兩個值true(1)和false(0)。
(2)bool只佔1個位元組,而bool占用空間由編譯器決定的,一般是4個位元組。
(3)bool是布林型,而bool在windef.h標頭檔案裡定義是整型。
(4)bool的值為非零數(包括正負的浮點數和整數),其結果都為1,即true.而bool型別的值要麼是true,要麼就是false。如果某值不是這兩個值中的乙個,該值在true和false的條件下都不成立。
【答案】
【答案】
一般在x86體系的linux系統中,u8、u16、u32和u64的資料型別定義如下:
typedef unsigned char u8;
typedef unsigned short u16;
typedef unsigned int u32;
typedef unsigned long long u64;
原因如下:
(1)編寫**更方便,用簡短的字元替代了冗長的字元。
(2)提高**的可移植性,比如在不同平台下它們所對應的資料型別可能不同。比如u64,在一些平台下定義為
typedef unsigned long u64;
【提示】
考慮大小端位元組序。舉例,在記憶體中從低到高位址中存放的內容為12 34 ab cd(十六進製制數),如果cpu是小端位元組序,那麼它對應的整數值為:0xcdab3214;如果該cpu是大端位元組序,那麼它對應的整數值為:0x1234abcd。
【解析】
該題目考查大小端位元組序的移植性問題。在嵌入式開發中,c程式經常會在多個不同cpu體系下執行,所以不同cpu的大小端位元組序問題是必要考慮的事情,否則程式就會因為平台相容性問題而產生重大隱患。通常,在嵌入式開發除錯過程中可以獲得記憶體中的資料內容,根據這些資料可以驗證程式的正確性,於是會出現這樣的情況,比如已經從內容中列印出了乙個整數的數值內容,但由於不確定cpu的位元組序,所以無法直接確定該數值的正確結果,此時可以編寫乙個函式來實現整數值的正確解析。參考實現**如下。
int main()
答:a=255,b=-1,c=-1
【解析】
signed char取值範圍為-127--127,unsigned char取值範圍為0--255,至於char取值範圍取決於編譯器和編譯時所用的選項。
在vs環境下,該char型域signed char相同。
C C 基本資料型別
學了c然後c 然後mfc windows,然後是c 其中資料型別很多,由基本型別衍生的typedef型別也n多。熟知基本資料型別是我們正確表達實際問題中各種資料的前提,因此我分類總結了一下c c windows c 基本資料型別,以便日後查閱。ansi c c 基本資料型別 說明 1 型別修飾符si...
C C 基本資料型別
學了c然後 c 然後 mfc windows,然後是c 其中資料型別很多,由基本型別衍生的 typedef 型別也n 多。熟知基本資料型別是我們正確表達實際問題中各種資料的前提,因此我分類總結了一下 c c windows c 基本資料型別,以便日後查閱。ansi c c 基本資料型別 type s...
c c 基本資料型別
整型 浮點型 int main 執行結果 size char 1 short int 2 int 4 long 4 long long int 8 int long long 8 long long 8 三種寫法相同 float 4 double 8型別 大小 byte char 1short 2i...