資料型別
所佔位元組
範圍char
1位元組-128 ———127
short
2位元組-32768——32767
int取決於編譯器
long
取決於編譯器
long long
8位元組那麼問題來了,如何表示負數呢?
乙個新概念:補碼
二進位制補碼較為常見,簡單來說,正整數的補碼就是它本身的二進位制,負整數的補碼則為與之將相應的正整數的二進位制中1與0相互交換
比如:-1的補碼就是1111 1111,
數的範圍
1個位元組=8位,
unsigned:在整數型別前加上unsigned可以把該型別變成不帶符號的整數,
若乙個變數想表示自己是unsigned可以在後面加上u或者u
整數越界:在我們的單個整數型別當中,可以將他的範圍理解為乙個圓圈,當乙個數走到127時,它再做加1的話它的值就變成-128。如下圖:
其他資料型別同理,此處以char為例。。。。
整數的輸入與輸出
資料型別 / 進製
輸入與輸出
int%d
unsigned
%ulong long
%ldunsigned long long
%lu8進製
%o16進製制
%x在這麼多資料型別選哪個好呢?
沒有特殊需要,就選擇int
在整數型別當中,還有乙個特殊的型別——char
char —— 字元型別
用單引號表示,例:char c =『1』;這裡的變數c表示乙個字元1
輸入與輸出都是%c
逃逸字元:
字元意義
字元意義
\b回退一格
\ "雙引號
\t到下乙個**位
\ 』單引號
\n換行
\ \反斜槓本身
\r回車
型別字長
有效數字
float327
double
6415
輸出精度
浮點數用%f輸出,而在%後面加上 .數字 表示輸出小數點後多少位;
printf("%.5f",0.00458);
printf("%.10f",0.00458);
printf("%.20f",0.00458);
看下輸出結果
超出範圍的浮點數
printf輸出inf表示該數超出範圍
printf輸出nan表示該數不存在
在這麼多資料型別選哪個好呢?
沒有特殊需要,就選擇double
bool
使用該型別時,要先定義乙個 #include
sizeof()
給出某個變數或型別在記憶體當中佔據的位元組,sizeof是靜態運算子。在括號內部不做計算
例如:printf(「sizeof(int)=%d」,sizeof(int)); 其他資料型別同理
1,自動資料型別轉換
當倆個資料型別不相同時,會自動轉換為較大的型別
char >> short >> int >>long >>long long
int >> float >>double
對於printf輸出而言,任何比int小的資料型別都會轉換為int
同理 float都會轉換為double
而scanf輸入不會,要輸入short型別,需要%hd
2,強制資料型別轉換
資料型別)值
例 printf("%d",(int)105.5); 會輸出 105
其他資料型別同理。。。。
名稱符號非!
或倆條豎線且&&
賦值運算,邏輯運算子,引用資料型別
總結 1.賦值運算 a 2 a a 2 a 2 a a 2 a 2 a a 2 如果a 2那麼a 2 0 乙個 是右邊的值賦給左邊的變數 兩個 這個是判斷 2.int a 3 int b 4 system.out.pringtln a b 輸出的結果是4 因為這是個賦值 system.out.pri...
C語言 邏輯運算與if語句
關係運算子 在c語言中0代表false,非0代表真 1.小於 2.小於等於 3.大於 4.大於等於 5.等於 6.不等於 關係運算子優先順序 前四種相同,後兩種相同,前四種高於後兩種優先順序 邏輯運算子 1.與 號兩邊都為真最後的結果才為true,否則為false。2.或 號兩邊有乙個位true,則...
C語言邏輯運算子詳解
情景模式 現在研發出了一款新的軟體,要求使用者必須成年,並且成績大於等於60,該怎麼辦呢?或許你會想到使用巢狀的 if 語句,類似下面這樣的 include intmain else else return0 這種方法雖然能夠行得通,但不夠簡潔和專業,我們可以將其壓縮為一條 if else 語句 i...