變換看待方式,還有unsigned:
在計算機內部,一串字元在現實中表示什麼取決於用什麼樣的方式去看待它,比如%d
與%u
同樣輸出同乙個位串
,會不一樣。
字面量,是在編譯器編寫介面裡的內容,可以有比如012
表示8進製
,編譯器會自動將其轉成10進製
,但是這是編譯器這個層面的事情,在計算機底層只有2進製
。
進製字面量
輸入輸出格式化
2進製字面量並不會直接寫二進位制
8進製0開頭
%o、%o
10進製
正常數字
%d、%ld
16進製制
0x開頭
%x、%x
c語言有很多整數型別,因為設計之初,需要考慮到跟硬體打交道,位數不同是適應不同硬體配置。
當下,盡量預設選擇int
作為整數。因為當下計算機已經預設了32位,即便是使用char
、short
型別,實際呼叫中可能基於記憶體對齊,速度反而更慢。
unsigned
只是作用於輸出過程,沒有熱別需要也不使用。
浮點數浮點數有兩種:
型別輸入輸出格式化
字長範圍
有效數字
備註float
scanf:%f
;
printf:
%f
,
%.16f
(小數點後16位,四捨五入),
%e
(科學記數法),%e
(大寫)
32(4個位元組)
±
(1.2∗1
0−38,
3.4∗10
38),0
,±in
f,na
n\pm(1.2*10^ , 3.4*10^),0,\pm inf,nan
±(1.2∗
10−3
8,3.
4∗10
38),
0,±i
nf,n
an7在0左右
很小區域內,是無法表達的
double
scanf:%lf
;
printf:%lf
,%e
(科學記數法),%e
64
±
(3.2∗1
0−
308,
1.79∗1
0−
308),0
,±in
f,na
n\pm(3.2*10^ , 1.79*10^),0,\pm inf,nan
±(3.2∗
10−3
08,1
.79∗
10−3
08),
0,±i
nf,n
an15在0左右
很小區域內,是無法表達的
nan
:不是有效的數字
有效數字:*7(15)個數字是有效的,第8(16)*個就是不準確的。
浮點數有精度,數字本質上連續的,但是計算機只能通過離散數來表示乙個準確的數,實際上計算機內部不能準且表示,double
相比於float
精度更高,能表示的更準確,但依然是個近似值。
翁愷, c語言程式設計, [b站], 6.1.5 - 6.1.7 ↩︎
翁愷 程式設計高階C語言筆記 結構型別
結構型別 列舉 列舉是使用者定義的資料型別,用來表示依此排列的常量 常量型別只能是 int,常量大小是從0到n 列舉型別裡的名字通常不是真的使用,要使用的是大括號裡的常量名字。定義列舉的意義就是給這些常量定義一些名字 enum colors red 0.voidf enum color c int ...
翁愷C筆記 指標
指標應用場景 1.函式需要返回多個值,其中一些值可通過指標返回。傳入的指標引數其實是需要儲存帶回結果的變數 例程 include include void swap int a,int b int main void swap int pa,int pb 2.需要傳入較大的資料時用作引數 3.傳入陣...
程式設計入門 C語言(翁愷老師)作業
第1周 程式設計與c語言1 輸出 hello world 5分 題目內容 請輸出一行,內容為 hello world 請注意大小寫。由於這一周只是簡單地介紹了c程式的基本框架,還不能做很多事情,甚至還不能做資料的輸入,所以這一周的題目也非常簡單。輸入格式 無輸入輸出格式 一行文字 輸入樣例 無輸出樣...