第2章 C語言數(shù)據(jù)類型_第1頁
第2章 C語言數(shù)據(jù)類型_第2頁
第2章 C語言數(shù)據(jù)類型_第3頁
第2章 C語言數(shù)據(jù)類型_第4頁
第2章 C語言數(shù)據(jù)類型_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第2章

c數(shù)據(jù)類型計(jì)算機(jī)程序設(shè)計(jì)c

2本章學(xué)習(xí)要求掌握常用進(jìn)制理解變量和常量的含義熟悉基本數(shù)據(jù)類型:int、char、float和double標(biāo)識符命名規(guī)則2.1進(jìn)位計(jì)數(shù)制

計(jì)數(shù)的方法有很多種,最常見的是十進(jìn)制計(jì)數(shù)法。另外還有其他計(jì)數(shù)制,如一天24小時(shí),稱為24進(jìn)制,一小時(shí)60分鐘,稱為60進(jìn)制,這些稱為進(jìn)位計(jì)數(shù)制。計(jì)算機(jī)系統(tǒng)中幾種常用進(jìn)位計(jì)數(shù)制:

十位制(Decimalnotation)

二進(jìn)制(Binarynotation)

八進(jìn)制(Octalnotation)

十六進(jìn)制數(shù)(Hexdecimalnotation)這幾種進(jìn)制包含兩個(gè)基本要素:基數(shù)、位權(quán)。31.計(jì)數(shù)制概念基數(shù):數(shù)制中所用到的代碼的個(gè)數(shù);

R進(jìn)制中具有R個(gè)符號:0,1,2,......(R-1);

十進(jìn)制(Decimal):0~9

二進(jìn)制(Binary):0~1

八進(jìn)制(Octal):0~7

十六進(jìn)制(Hexadecimal):0~9、A、B、C、D、E、F

位權(quán):是指一個(gè)數(shù)值的每一位上的數(shù)字的權(quán)值的大小。例如十進(jìn)制數(shù)4567從低位到高位的位權(quán)分別為100、101、102、103。例如:

4567=4×103+5×102+6×

101+7×100

。又比如:十進(jìn)制數(shù)的435.05可表示為:

435.05=4×102+3×

101+5×100+0×10-1+5×

10-2

45十進(jìn)制二進(jìn)制十六進(jìn)制0123456700000001001000110100010101100111891011121314151000100110101011110011011110111101234567十進(jìn)制二進(jìn)制十六進(jìn)制89ABCDEF6計(jì)算機(jī)中使用二進(jìn)制的原因1)二進(jìn)制表示的狀態(tài)便于物理器件實(shí)現(xiàn)2)二進(jìn)制運(yùn)算規(guī)則簡單0×0=00×1=01×0=01×1=1基數(shù)為R的進(jìn)制,其求積、求和的公式各有:

R(R+1)/2種十進(jìn)制:55種二進(jìn)制:3種3)便于實(shí)現(xiàn)邏輯運(yùn)算72.數(shù)制轉(zhuǎn)換不同數(shù)制之間的轉(zhuǎn)換,實(shí)質(zhì)是基數(shù)間的轉(zhuǎn)換。一般轉(zhuǎn)換的原則是:如果兩個(gè)有理數(shù)相等,則兩數(shù)的整數(shù)部分和小數(shù)部分一定分別相等。因此,各數(shù)制之間進(jìn)行轉(zhuǎn)換時(shí),通常對整數(shù)部分和小數(shù)部分分別進(jìn)行轉(zhuǎn)換。十進(jìn)制數(shù)轉(zhuǎn)二進(jìn)制數(shù)十進(jìn)制數(shù)轉(zhuǎn)八進(jìn)制數(shù)和十六進(jìn)制數(shù)二進(jìn)制與八進(jìn)制及十六進(jìn)制之間的轉(zhuǎn)換非十進(jìn)制數(shù)轉(zhuǎn)十進(jìn)制數(shù)8①十進(jìn)制數(shù)轉(zhuǎn)二進(jìn)制數(shù)

方法:整數(shù)轉(zhuǎn)換用“除2取余法”;小數(shù)轉(zhuǎn)換用“乘2取整法”。9[例]:將(0.745)10轉(zhuǎn)換成四位二進(jìn)制小數(shù),轉(zhuǎn)換過程如下:0.745×2=1.490取出整數(shù)1(最高位)0.490×2=0.980取出整數(shù)00.980×2=1.960取出整數(shù)10.960×2=1.920取出整數(shù)1(最低位)0.920轉(zhuǎn)換結(jié)束這里,第四次乘積的小數(shù)部分不為0,但已滿足題目所要求的精度,所以,(0.745)10≈(0.1011)2。顯然,在轉(zhuǎn)換過程中,做的乘法次數(shù)越多,結(jié)果就越精確。10②十進(jìn)制數(shù)轉(zhuǎn)八進(jìn)制數(shù)和十六進(jìn)制數(shù)十進(jìn)制轉(zhuǎn)八進(jìn)制:整數(shù)部分轉(zhuǎn)換采用“除8取余法”;小數(shù)部分轉(zhuǎn)換采用“乘8取整法”。十進(jìn)制轉(zhuǎn)十六進(jìn)制:整數(shù)部分轉(zhuǎn)換采用“除16取余法”;小數(shù)部分轉(zhuǎn)換采用“乘16取整法”。練習(xí):將(253)10轉(zhuǎn)換成八進(jìn)制和十六進(jìn)制數(shù)1112③二進(jìn)制與八進(jìn)制及十六進(jìn)制之間的轉(zhuǎn)換13④非十進(jìn)制數(shù)轉(zhuǎn)十進(jìn)制數(shù)

把各個(gè)非十進(jìn)制數(shù)按權(quán)展開求和即可。即把二進(jìn)制數(shù)(或八進(jìn)制數(shù),或十六進(jìn)制數(shù))寫成2(或8或者16)的各次冪之和的形式,然后計(jì)算其結(jié)果。例:11111101.1011=1×27+1×26+1×25+1×24+1×23+1×22 +0×21+1×20+1×2-1+0×2-2+1×2-3+1×2-4=253.6875(375)8=3×82+7×81+5×80=253(FD)16=F×161+D×160

=15×161

+13×160=25314總結(jié)及技巧:

數(shù)制轉(zhuǎn)換中,關(guān)鍵是二進(jìn)制與十進(jìn)制之間的互換,它們之間轉(zhuǎn)換好了,再轉(zhuǎn)成其它進(jìn)制(八進(jìn)制、十六進(jìn)制)就容易多了。153.無符號數(shù)和有符號數(shù)由于計(jì)算機(jī)只能直接識別和處理用0,1兩種狀態(tài)表示的二進(jìn)制形式的數(shù)據(jù),所以需要用二進(jìn)制代碼

0

1

來表示

正,負(fù)號。這種采用二進(jìn)制表示形式的連同符號一起代碼化了的數(shù)據(jù),在計(jì)算機(jī)中統(tǒng)稱為機(jī)器數(shù)。而與機(jī)器數(shù)對應(yīng)的用正,負(fù)符號加絕對值來表示的實(shí)際數(shù)值稱為真值,一般用十進(jìn)制表示。

所謂16無符號數(shù),機(jī)器數(shù)的全部位均用來表示數(shù)值的大小,相當(dāng)于數(shù)的絕對值。

N1=01001表示無符號數(shù)9N2=11001表示無符號數(shù)25

對于字長為n位的無符號數(shù)的表示范圍是0~2n-1。例如,字長為8位的無符號數(shù),表示范圍是0~28-1,即

0~255。17

有符號數(shù),最高位用來表示符號位,而不再表示數(shù)值位,

前例中的N1、N2在這里變?yōu)椋?/p>

N1=01001

表示有符號數(shù)(+9)10N2=11001表示有符號數(shù)(-9)10。18[例]:分別寫出機(jī)器數(shù)10011001作為無符號整數(shù)和帶符號整數(shù)對應(yīng)的真值.

解:

10011001作為無符號整數(shù)時(shí),對應(yīng)的真值是(10011001)2=(153)10

.

10011001作為有符號整數(shù)時(shí),其最高位的數(shù)碼1代表符號"-",所以與機(jī)器數(shù)

10011001對應(yīng)的真值是

(-

0011001)2=

(-

25)10

194.定點(diǎn)數(shù)和浮點(diǎn)數(shù)定點(diǎn)數(shù)(FixedPoint):小數(shù)點(diǎn)位置固定不變。通常,把小數(shù)點(diǎn)固定在有效數(shù)位的最前面或末尾。這就形成了兩類定點(diǎn)數(shù):定點(diǎn)小數(shù):小數(shù)點(diǎn)的位置固定在最高有效數(shù)位之前,符

號位之后,此數(shù)是一個(gè)純小數(shù)。符號位20定點(diǎn)整數(shù):小數(shù)點(diǎn)位置隱含固定在最低有效數(shù)位之后,這個(gè)數(shù)是一個(gè)純整數(shù)。浮點(diǎn)數(shù)(FloatingPoint):小數(shù)點(diǎn)位置不固定,或稱作是“浮動”的,小數(shù)點(diǎn)的位置根據(jù)需要而浮動。21[例]: 1999=1.999×103

=19.99×102

=199.9×101

=0.1999×104

5.原碼、反碼和補(bǔ)碼如果要處理的整數(shù)是有符號的,在計(jì)算機(jī)中必須考慮符號位的處理,為此引入了原碼、反碼和補(bǔ)碼的概念。在計(jì)算機(jī)中,數(shù)據(jù)的表示采用二進(jìn)制的補(bǔ)碼形式。1)原碼就是用數(shù)的最高位表示符號位,而其余各位表示真值的絕對值,符號位為“0”表示該數(shù)為正數(shù),符號位為“1”表示該數(shù)為負(fù)數(shù)。例如字長為一個(gè)字節(jié)(8位)的情況下:

(+7)1000000111------原碼(-7)10

10000111------原碼

2223注意0的原碼有兩個(gè):(+0)1000000000(-0)10100000002)反碼正數(shù):反碼與原碼相同負(fù)數(shù):將原碼符號位保持不變,其余各位變反如:

24

(+7)1000000111------原碼

00000111-------反碼(-7)10

10000111------原碼

11111000-------反碼注意,零的反碼表示也不唯一:25(+0)1000000000------原碼00000000-------反碼

(-0)1010000000------原碼11111111-------反碼3)補(bǔ)碼正數(shù):原碼、反碼、補(bǔ)碼表示都相同(與原碼相同)負(fù)數(shù):將原碼符號位保持不變,其余各位變反,末位加1如:

26

(+7)1000000111------原碼

00000111-------反碼

00000111-------補(bǔ)碼(-7)10

10000111------原碼

11111000-------反碼

11111001--------補(bǔ)碼注意:0的補(bǔ)碼是唯一的,如果機(jī)器字長為8位那么:27(+0)1000000000------原碼00000000-------反碼00000000-------補(bǔ)碼

(-0)1010000000------原碼11111111-------反碼00000000-------補(bǔ)碼舍掉了最高位的進(jìn)位計(jì)算機(jī)中引入所謂原碼、反碼、補(bǔ)碼的目的:⑴使符號位能與有效值部分一起參加運(yùn)算,從而簡化運(yùn)算規(guī)則.

⑵使減法運(yùn)算轉(zhuǎn)換為加法運(yùn)算,進(jìn)一步簡化計(jì)算機(jī)中運(yùn)算器等硬件系統(tǒng)線路設(shè)計(jì)。28292.2常量和變量大小寫英文字母(52):A、B、C…Z、a、b、c…z特別注意:C程序中英文字母區(qū)分大小寫阿拉伯?dāng)?shù)字(10):0、1、2、…、9特殊字符(30):,逗號(左圓括號>右尖括號%

百分號_下劃線.圓點(diǎn))右圓括號!感嘆號&and(與)空格;分號[左方括號|豎線^xor(異或):冒號]右方括號/斜杠*乘號?問號{左大括號\反斜杠-減號‘單引號}右大括號~波折號=等于號“雙引號<左尖括號#井號+加號1.常用字符集302.常量什么是常量常量是在程序運(yùn)行過程中保持不變的量包括整型常量、實(shí)型常量、字符型常量、字符串常量以及符號常量等常量只能在定義時(shí)賦值,然后不能再改變其值

整型(如

0,67,-2,

123L,123u,

022,0x12)默認(rèn)為int實(shí)型(如2.3,1.2e-5,2.73F,2.73L)默認(rèn)為double字符型(如'z','3','$','\n')用\開頭的字符為轉(zhuǎn)義字符,代表1個(gè)字符字符串(如"UKM","1","5a")枚舉型長整型無符號整型八進(jìn)制十六進(jìn)制單精度實(shí)型長雙精度實(shí)型十進(jìn)制小數(shù)指數(shù)形式十進(jìn)制32實(shí)型常量實(shí)型常量也稱浮點(diǎn)型常量,由整數(shù)部分和小數(shù)部分組成。有2種表示方法:十進(jìn)制小數(shù)形式:由數(shù)字和小數(shù)點(diǎn)組成,必須要有小數(shù)點(diǎn)。例如:0.123,123.,123.0,0.0等。指數(shù)形式:如123e3或123E3都代表123×103。

注意字母e或E之前必須有數(shù)字,且e或E后面的指數(shù)必須為整數(shù)。規(guī)范化的指數(shù)形式:在字母e或E之前的小數(shù)部分中,小數(shù)點(diǎn)左邊應(yīng)有一位且只能有一位非零的數(shù)字,如1.23e5。333.變量什么是變量程序運(yùn)行過程中其值可以改變的量,變量名是標(biāo)識符。變量的作用通常使用變量來存儲數(shù)據(jù),可以把變量看成用來裝數(shù)據(jù)的容器增加程序的靈活度,任何一個(gè)程序基本上都要用到變量變量的定義inti;charc1,c2;doubled1,d2;定義變量的方法:數(shù)據(jù)類型變量名列表;注意:在同一語句中聲明的多個(gè)變量必須類型相同所謂標(biāo)識符,就是你起的一個(gè)名字。c/c++中,是你用來標(biāo)識變量名、符號常量名、函數(shù)名、數(shù)組名、文件名、類名、對象名等的。

34變量的定義

1)變量名在C語言中,變量命名(用戶定義的標(biāo)識符)需要遵循一定的規(guī)則:有效名稱principalcost_pricemarks_3lastnamecity無效名稱123ratechardiscount%zipcode變量名只能由由字母、數(shù)字和_(下劃線)組合而成變量名必須以字母或

_(下劃線)開頭C語言中的關(guān)鍵字(例如int和float等),具有特殊意義,不能用作變量名C語言區(qū)分大小寫,因此變量price與變量PRICE是兩個(gè)不同的變量變量命名的良好習(xí)慣:見名知意,如年齡用age表示習(xí)慣上,變量名用小寫C語言關(guān)鍵字(藍(lán)色為C99新增)352)36變量定義的形式:

類型關(guān)鍵字變量名;使用變量的基本原則變量必須先定義,后使用所有變量必須在第一條可執(zhí)行語句前定義聲明的順序無關(guān)緊要一條聲明語句可聲明若干個(gè)同類型的變量C99標(biāo)準(zhǔn)無此限制!373)變量賦值的方法:

(1)賦值運(yùn)算符C語言將“=”作為一個(gè)運(yùn)算符處理,稱為賦值運(yùn)算符。

功能:將“=”右邊表達(dá)式的值賦給左邊的變量。

例如:賦值表達(dá)式x=1

實(shí)現(xiàn)把常量1賦給變量x。

注意事項(xiàng):

①在一個(gè)表達(dá)式中可以連續(xù)使用多個(gè)賦值運(yùn)算符,自右向左順序運(yùn)算。

如:“a=b=c=0”相當(dāng)于a=(b=(c=0))。②當(dāng)賦值運(yùn)算符兩邊的數(shù)據(jù)類型不一致,系統(tǒng)自動將結(jié)果轉(zhuǎn)換成左邊變量的類型。整型數(shù)據(jù)賦給實(shí)型變量時(shí),數(shù)值不變,但以浮點(diǎn)形式存儲到變量中。如:假設(shè)f為單精度型,,則執(zhí)行f=123的結(jié)果是123.000000。實(shí)型數(shù)據(jù)賦給整型變量,自動舍棄小數(shù)部分。如:假設(shè)i為整型變量,則執(zhí)行i=234.856的結(jié)果是i的值為234。38定義時(shí)初始化變量:

intage=20;定義后初始化變量:intage;age=20;定義后通過計(jì)算獲得:intnum1,num2,sum;num1=11;num2=22;sum=num1+num2;使用輸入函數(shù)如scanf()函數(shù)接受用戶輸入值39/*求兩個(gè)整數(shù)21、37的和*/#include<stdio.h>voidmain(void){intnum1=21,num2,sum;num2=37;sum=num1+num2;printf(“sum=%d\n“,sum);}

(2)變量賦值方法402.3C語言的數(shù)據(jù)類型數(shù)據(jù)類型基本類型構(gòu)造類型指針類型無類型整型實(shí)型(浮點(diǎn)型)字符型枚舉類型數(shù)組類型結(jié)構(gòu)體類型共用體類型單精度實(shí)型雙精度實(shí)型基本整型長整型短整型無符號整型長雙精度實(shí)型41名稱全稱類型說明符縮寫類型說明符位數(shù)范圍整型intint32-231~(231-1)無符號整型unsignedintunsigned320~(232-1)短整型shortintshort16-215~(215-

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論