翁愷C語言程式設計 學習筆記5

2021-10-01 21:34:46 字數 1819 閱讀 6826

變換看待方式,還有unsigned:

在計算機內部,一串字元在現實中表示什麼取決於用什麼樣的方式去看待它,比如%d%u同樣輸出同乙個位串,會不一樣。

字面量,是在編譯器編寫介面裡的內容,可以有比如012表示8進製,編譯器會自動將其轉成10進製,但是這是編譯器這個層面的事情,在計算機底層只有2進製

進製字面量

輸入輸出格式化

2進製字面量並不會直接寫二進位制

8進製0開頭

%o、%o

10進製

正常數字

%d、%ld

16進製制

0x開頭

%x、%x

c語言有很多整數型別,因為設計之初,需要考慮到跟硬體打交道,位數不同是適應不同硬體配置。

當下,盡量預設選擇int作為整數。因為當下計算機已經預設了32位,即便是使用charshort型別,實際呼叫中可能基於記憶體對齊,速度反而更慢。

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(科學記數法),%e64

±

(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程式的基本框架,還不能做很多事情,甚至還不能做資料的輸入,所以這一周的題目也非常簡單。輸入格式 無輸入輸出格式 一行文字 輸入樣例 無輸出樣...