天天看點

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

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

  導讀:C語言程式中經常涉及一些數學計算,是以要熟悉其基本的資料類型。資料類型學習起來比較枯燥,不過結合之前的記憶體概念,以及本節的位元組概念,相信資料類型也就不難了解了。本章從二進制的基本概念開始,然後介紹機器語言通用的計算機關位元組,最後再介紹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

1

int

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

4

float

1.2E-38 到 3.4E+38

unsigned char

0 到 255

unsigned int

0 到 4,294,967,295

bool

true或者false

2

表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兩種。

原文位址

https://www.cnblogs.com/songsongman/p/11270122.html

繼續閱讀