C語言程式設計入門之 第四章C語言基本資料型別

2022-04-12 04:24:37 字數 3104 閱讀 9295

本章從二進位制的基本概念開始,然後介紹機器語言通用的計算單位位元組,最後再介紹c語言中基本的資料型別及其基本概念。

4.1 二進位制、位元組

計算機,電子資訊專業類的大學課程,肯定會有講解二進位制與十進位制轉換的課程,本節為了篇幅小一點,只提供windows計算器中進製轉換工具的使用方法,希望讀者諒解。

4.1.1 二進位制

機器之間溝通用的是機器語言,機器語言用二進位制資料相互溝通,什麼是二進位制資料?為什麼是二進位制資料呢?

我們日常生活中比較熟悉的是十進位制資料,當數字從1開始不停的加

1,加到

10的時候再加

1就會變成

11,那麼個位又變回

1了,這就叫做滿10進

1。還有比較熟悉的是十二進位制,就是我們的時鐘了,當時針從1開始不停加到

12時,再加

1,時針就又變成

1了。當然如果有人習慣

24小時制,那就理解為二十**制也可。

圖4.1  時鐘 

同理,分針和秒針就是60進製了,滿60進

1。那麼,二進位制就應該是滿2進

1咯,對的,舉個簡單例子:

十進位制的1,2,3在二進位制為

01,10,11

。可以看到十進位制的

3在二進位制的第一位為

1,因為它滿2就進

1了。平時用進製轉換可以搬用公式計算,當然快捷的辦法是用windows自帶的計算器,開啟win10系統的計算器軟體,選擇程式設計師選項。

注意:不同版本的windows的計算器用法稍微不同,請讀者自行了解。

圖4.2  windows計算器

滑鼠點選dec,選擇十進位制,在dec中輸入

123,可以發現二進位制

bin為

01111011

,八進位制

oct為

173,十六進製制為

7b,如圖4.3所示,

圖4.3  計算器進製轉換

計算器基本用法就是這樣了。

注意:為什麼機器語言是二進位制語言?涉及到數位電路方面的知識,說白了cpu,記憶體這些就是大量的開關組合起來的,開就是1,關就是0,這正是二進位制的一種體現。

4.1.2 位元組

二進位制最小單位是位(bit),英文有個片語叫做

a little bit

,意思就是一點

點,bit就是最小的位元,比如十進位制1的二進位制有乙個位,十進位制2的二進位制有兩個位「10」,十進位制3的二進位制也能用兩位表示「11」,十進位制4的二進位製用三個位表示「100」。但是c語言記憶體中最小資料是1個位元組(byte),1個位元組有八個位,也就是十進位制1的二進位制表示為「00000001」,十六進製制表示為「0x01」。來個複雜的,十進位制的141表示為......開啟計算器,可知二進位制為「‭10001101‬」,它的十六進製制為「0x8d」。

注意:十六進製制一般會在數值前新增「0x」,用於區分十進位制類似的數,比如十進位制69和十六進製制69就不相等,十六進製制的69等於十進位制的105,所以用「0x69」表示十六進製制。

因為1個位元組有八位,所以1個位元組數值範圍在0~255之間,因為當二進位制八位數都為1時即「11111111」最大,等於255。

所以2個位元組有十六位,數值範圍在0~65535之間,因為當二進位制十六位數都為1時即「1111111111111111」最大,等於65535。

所以4個位元組有三十二位,數值範圍在0~4294967295‬之間......

所以8個位元組有六十四位,數值範圍在......

4.2 基本資料型別

c語言中基本資料型別有字元型char,布林型bool,整型int,長整型long,浮點型float等等,對應的還有無符號字元型unsigned char,無符號整型unsigned int等等。

資料型別有很多,目前就介紹6種,但是如何運用它們呢?我覺得只需要知道這個資料型別的取值範圍以及占用多少位元組即可。下表請死記硬背:

資料型別

取值範圍

占用位元組數

char

-128 到 127

int-2,147,483,648 到 2,147,483,647

float

1.2e-38 到 3.4e+38

unsigned char

0 到 255

unsigned int

0 到 4,294,967,295

bool

true或者false

表4.1  列舉一些基本資料型別

注意:當然c語言資料型別不止這些,因為這系列部落格只是程式設計入門篇,不是搬移各個部落格的彙總篇,所以資料型別只介紹其中一部分,日後需要了解別的部分應該就能更輕鬆的了解。

發現問題:表中char型和unsigned char型的占用位元組數都是1個,但是取值範圍不同。

解釋:unsigned的英文直譯是無符號的,而負數的符號是乙個負號「-」,所以無符號就是無負號,就是大於0的數。而有符號,就是能夠有負號,可以取值小於0,這樣就不難理解他們的取值範圍了。

注意:資料型別不加unsigned預設為有符號型別。

比如char,是可以有負號的char,取值範圍可以小於0,由於佔的位元組數是1個,所以範圍是-128~127,資料的變化總量就是|-128|+127=255,正好是乙個位元組的取值量。

unsigned char,是無符號的char,取值範圍必須大於0,範圍是0~255,。同理,int和unsigned int也是這樣對比。

float型別是浮點型別,說白了就是帶小數點的,比如float型別的值可以取3.1415,而int型別只能取值為3,後面章節講到運算方面會再次對比float和int。

程式設計的時候會需要做程式判決功能,就會用到bool型別的資料,取值有真true和假false兩種。

C語言第四章

4.2 用if語句實現選擇結構 4.2.1 用if語句處理選擇結構舉例 4.5條件運算子和條件表示式 4.6 選擇結構的巢狀 4.7用switch語句實現多分支選擇結構 4.8 選擇結構程式綜合舉例 4.1 選擇結構和條件判斷 4.2 用if語句實現選擇結構 4.2.1 用if語句處理選擇結構舉例 ...

C語言第四章

main.c project1 created by sihan guo on 2019 06 13.include include int main int argc,const char ar 構成復合語句 所以要把這個括起來 int x 6 if x 5 b if 表示式 語句1 else 語...

C語言基礎 C語言第四章

第四章 最簡單的c程式設計 順序程式設計 程式應該包括資料描述 由宣告部分來實現 和資料操作 由語句來實現 資料描述包括定義資料結構和在需要時對資料賦予初值。資料操作的任務是對已提供的資料進行加工。c語句分為以下5類。1 控制語句。1 if else.條件語句 2 for 迴圈語句 3 while ...