




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1C+語言程序設計第二章 數(shù)據(jù)類型、運算符與表達式 前一頁 下一頁 休息2本章主要內容l計算機中信息表示計算機中信息表示lC+基本數(shù)據(jù)類型基本數(shù)據(jù)類型l基本運算符和表達式基本運算符和表達式l數(shù)據(jù)的混合運算與類型輪換數(shù)據(jù)的混合運算與類型輪換l簡單輸入輸出簡單輸入輸出3預備知識:計算機中信息的表示計算機中的進制計算機中的進制計算機中的碼制計算機中的碼制計算機中數(shù)的表示計算機中數(shù)的表示計算機中字符的表示計算機中字符的表示4計算機中數(shù)值的表示二進制l計算機中直接使用十進制有一定的計算機中直接使用十進制有一定的困難困難l計算機中普遍使用二進制,輔助使計算機中普遍使用二進制,輔助使用八、十六進制用八、十六
2、進制l所有進制均由十進制演變而來所有進制均由十進制演變而來l不同進制之間存在轉換問題不同進制之間存在轉換問題 前一頁 下一頁 前一頁 下一頁 休息5小小數(shù)數(shù)位位數(shù)數(shù)整整數(shù)數(shù)位位數(shù)數(shù) - m -n 10kN1nmiii 101231091031081091019 .1983 例例:進位計數(shù)制計算機中的進制l十進制數(shù)有如下特點:十進制數(shù)有如下特點:只使用只使用10個符號,個符號,09逢十進一逢十進一一個數(shù)的值等于各位的權與該位數(shù)碼的乘積之和一個數(shù)的值等于各位的權與該位數(shù)碼的乘積之和 前一頁 下一頁 休息6小數(shù)位數(shù)小數(shù)位數(shù)整數(shù)位數(shù)整數(shù)位數(shù) - m -n 1 nmiiiRkN進位計數(shù)制計算機中的進制l
3、R進制數(shù)有如下特點:進制數(shù)有如下特點:只使用只使用R個符號,個符號,0 R-1逢逢R進一進一一個數(shù)的值等于各位的權與該位數(shù)碼的乘一個數(shù)的值等于各位的權與該位數(shù)碼的乘積之和。積之和。1012322121212021)1 .1011( 例例:l計算機中常用進制:二、八、十六進制計算機中常用進制:二、八、十六進制 前一頁 下一頁 休息7計算機中的進制二進制l二進制是計算機中最常用的進制二進制是計算機中最常用的進制 l二進制數(shù)有如下特點:二進制數(shù)有如下特點:數(shù)碼符號少,便于用電子元件來表示數(shù)碼符號少,便于用電子元件來表示 運算規(guī)則簡單,易于進行高速運算運算規(guī)則簡單,易于進行高速運算 加法:加法:1+0
4、 = 0+1 = 1 0+0 = 0 1+1 = 0(進位)(進位)減法:減法:1-0 = 1 1-1 = 0 0-0 = 0 0-1 = 1(借位)(借位) 乘法:乘法:11 = 1 10 = 01 = 00 = 0 除法:除法:0 1 = 0 1 1 = 1 用用1表示表示“真真”,0表示表示“假假”時可以把邏輯與數(shù)時可以把邏輯與數(shù)值處理相統(tǒng)一值處理相統(tǒng)一例:例: b = ( x=y ) + 4 前一頁 下一頁 休息811.10101.110 000.011101101101011001101101二進制二進制數(shù)的缺點:二進制數(shù)的缺點:數(shù)值位數(shù)太多,容易出錯數(shù)值位數(shù)太多,容易出錯二進制計算
5、實例:二進制計算實例:計算機中的進制 前一頁 下一頁 休息9其它進制l使用八進制和十六進制的原因:使用八進制和十六進制的原因:二進制數(shù)太長,書寫、閱讀、記憶均不便二進制數(shù)太長,書寫、閱讀、記憶均不便八進制和十六進制與二進制之間的轉換直觀、方便八進制和十六進制與二進制之間的轉換直觀、方便l八進制八進制逢八進一逢八進一 l十六進制逢十六進一十六進制逢十六進一用用A,B,C,D,E,F(可小寫)代表(可小寫)代表10以上的數(shù)以上的數(shù)47.10631.75 004.0278.78485.896 DFA.101計算機中的進制十進制十進制二進制二進制八進制八進制十六進制十六進制00001111210223
6、1133410044510155611066711177810001089100111910101012A11101113B12110014C13110115D14111016E15111117F16100002010幾種進制的對照 前一頁 下一頁 前一頁 下一頁 休息11進制轉換l不同進制的表示:不同進制的表示:括號數(shù)字下標括號數(shù)字下標例:例:(173)8表示八進制數(shù)表示八進制數(shù)173數(shù)字后面加大寫字母數(shù)字后面加大寫字母B二進制二進制D十進制十進制Q八進制八進制H十六進制十六進制例:例:173Q表示八進制數(shù)表示八進制數(shù)173 5FH 表示十六進制數(shù)表示十六進制數(shù)5F計算機中的進制 前一頁 下
7、一頁 休息12 10101161010128103210122123.937515/1611112161516111677B.F123.6255/83566485838781173.57.6251/801/2124212021212121111.101 進制轉換lR進制轉換成十進制進制轉換成十進制展開位權多項式,按十進制規(guī)則計算展開位權多項式,按十進制規(guī)則計算 計算機中的進制 前一頁 下一頁 休息13例例:(11)10=( )21011(123)10= ( )8 = ( )161737B 115210 2 余數(shù)余數(shù) 1 1 0 1 12315108 余數(shù)余數(shù) 3 7 1 1237016 余數(shù)余
8、數(shù) 11 7 進制轉換l十進制轉換成十進制轉換成R進制進制整數(shù)轉換整數(shù)轉換除除R取余法(倒過來)取余法(倒過來)計算機中的進制 前一頁 下一頁 休息14一般實數(shù)轉換一般實數(shù)轉換例例:(0.6875)10=( )20.1011 0.6875 0.375 0.75 0.5 0 2 整數(shù)整數(shù) 1 0 1 1(0.31)10= ( )8 = ( )16 0.310.480.848 整數(shù)整數(shù) 2 3 0.310.960.3616 整數(shù)整數(shù) 4 F 0.230.4F 小數(shù)與整數(shù)部分分別轉換小數(shù)與整數(shù)部分分別轉換,合寫在一起即可合寫在一起即可小數(shù)轉換小數(shù)轉換乘乘R取整法取整法 進制轉換計算機中的進制 前一頁
9、 下一頁 休息15ED.5A355.264例例: (11101101.0101101 )2=( )8 = ( )16 0 1 1 , 1 0 1, 1 0 1 . 0 1 0, 1 1 0, 1 0 0 ( 8=23) 3 5 5 . 2 6 4 1 1 1 0 , 1 1 0 1 . 0 1 0 1 , 1 0 1 0 ( 16=24) E D . 5 A 進制轉換l二進制轉換為八進制或十六進制二進制轉換為八進制或十六進制小數(shù)點為中心向左右三位(或四位)為一小數(shù)點為中心向左右三位(或四位)為一組分別轉換組分別轉換頭尾不足三位(或四位)時,用頭尾不足三位(或四位)時,用0補上。補上。計算機中的
10、進制 前一頁 下一頁 休息16 1 2 3 . 7 001 010 011 . 111例例: 123.7O = 1010011.111B4F.3H = 1001111.0011B 4 F . 3 0100 1111 . 0011 進制轉換l八進制或十六進制轉換為二進制八進制或十六進制轉換為二進制將每個數(shù)字分別轉換將每個數(shù)字分別轉換計算機中的進制17計算機中符號的表示碼制l正負號必須用二進制表示計算機才能識別正負號必須用二進制表示計算機才能識別l真值真值帶正負號的數(shù)的二進制表示帶正負號的數(shù)的二進制表示例:例:15 1111-15 -1111l機器數(shù)機器數(shù)帶符號的數(shù)在機器中的表示帶符號的數(shù)在機器中
11、的表示l根據(jù)機器數(shù)轉換規(guī)則的不同,數(shù)值數(shù)據(jù)有多根據(jù)機器數(shù)轉換規(guī)則的不同,數(shù)值數(shù)據(jù)有多種編碼方式,一般稱為種編碼方式,一般稱為碼碼 前一頁 下一頁 前一頁 下一頁 休息18原碼l原碼是最簡單的機器數(shù)編碼原碼是最簡單的機器數(shù)編碼l轉換規(guī)則:轉換規(guī)則:最高位為符號位,最高位為符號位,0表示正號,表示正號,1表示負號。表示負號。數(shù)值部分保持不變數(shù)值部分保持不變 l實例:(為簡單起見,設字長為實例:(為簡單起見,設字長為8位。)位。)1111原原=00001111 -1111原原=10001111 l優(yōu)點:優(yōu)點:簡單、直觀簡單、直觀l缺點:缺點:減法運算較繁,不便于減法運算較繁,不便于CPU的運算處理的
12、運算處理有有+0( 00000000 )和和 -0( 100000000 )帶符號數(shù)的表示 前一頁 下一頁 休息19補碼l補碼是最常用的編碼之一補碼是最常用的編碼之一l補碼求取規(guī)則補碼求取規(guī)則最高位為符號位,最高位為符號位,0為正,為正,1為負數(shù)為負數(shù)正數(shù)補碼數(shù)值不變,負數(shù)補碼將真值求反正數(shù)補碼數(shù)值不變,負數(shù)補碼將真值求反加一加一例:例:1111補補 =00001111 -1111補補=-0001111補補=11110000+1=11110001 帶符號數(shù)的表示 前一頁 下一頁 休息20補碼l求補碼的方法求補碼的方法由補碼求真值:由補碼求真值:先由最高位判斷符號先由最高位判斷符號正數(shù)數(shù)值不變,
13、負數(shù)求反加一。正數(shù)數(shù)值不變,負數(shù)求反加一。 例:例:00001111真真 = 1111 11110001真真= -(0001110+1) = -1111 由一數(shù)補碼求其負數(shù)的補碼由一數(shù)補碼求其負數(shù)的補碼 :連符號一起求反加一連符號一起求反加一 例:例:X = 1111 -X補補 = -00001111補補 = 11110001 X = -1111 -X補補 = -11110001補補= 00001111 帶符號數(shù)的表示 前一頁 下一頁 休息21補碼l補碼運算規(guī)則:補碼運算規(guī)則:符號代入一起計算,根據(jù)首位結果判斷符號。符號代入一起計算,根據(jù)首位結果判斷符號。減法轉為加法進行運算減法轉為加法進行運
14、算 例例:X=-1101 Y=110 求:求:X+Y= 解解: X補補=11110011 Y補補=00000110 X補補 11110011 Y補補 00000110 XY補補 00 111111-0000111 表示結果為負表示結果為負真值求反加一真值求反加一帶符號數(shù)的表示 前一頁 下一頁 休息22補碼解解: X補補=00001101 Y補補=00000110 -Y補補=11111010 111 減法轉為加法運算例:減法轉為加法運算例:X=1101 Y=110 求:求:X-Y X補補 00001101 -Y補補 11111010 X-Y補補 11 100001超過字長溢出超過字長溢出0帶符號
15、數(shù)的表示 前一頁 下一頁 休息23計算機中數(shù)的表示 l計算機中的數(shù)值信息分整數(shù)與實數(shù)兩計算機中的數(shù)值信息分整數(shù)與實數(shù)兩種種l整數(shù)與實數(shù)在計算機中的表示及存儲整數(shù)與實數(shù)在計算機中的表示及存儲方式完全不同方式完全不同整數(shù):說小數(shù)點固定隱含在個位數(shù)的右面,整數(shù):說小數(shù)點固定隱含在個位數(shù)的右面,所以整數(shù)也叫做所以整數(shù)也叫做“定點數(shù)定點數(shù)”實數(shù):小數(shù)點位置不固定稱為實數(shù):小數(shù)點位置不固定稱為“浮點數(shù)浮點數(shù)”l在在CPU中分別用定點和浮點運算器處中分別用定點和浮點運算器處理理 前一頁 下一頁 休息24整數(shù)的表示l整數(shù)的一般表示方法整數(shù)的一般表示方法第一位為符號位,數(shù)值部分第一位為符號位,數(shù)值部分(尾數(shù)尾數(shù)
16、)用補碼用補碼表示表示數(shù)符數(shù)符(1位位)尾數(shù)尾數(shù) (n-1)位位 符號位符號位 數(shù)值部分數(shù)值部分 (n為字長為字長)計算機中數(shù)的表示 前一頁 下一頁 休息25整數(shù)的表示l整數(shù)分類整數(shù)分類有符號整數(shù):有符號整數(shù):普通帶符號整數(shù)普通帶符號整數(shù)存儲:第一位為符號位,其余位按補碼規(guī)則存放存儲:第一位為符號位,其余位按補碼規(guī)則存放例:例: 15 00001111-15 11110001 ( 設字長設字長8位位 )無符號整數(shù):無符號整數(shù):全部為正整數(shù),沒有負數(shù)全部為正整數(shù),沒有負數(shù)存儲:沒有符號位,全部為數(shù)值位存儲:沒有符號位,全部為數(shù)值位l表示范圍:字長表示范圍:字長 n 位位無符號數(shù):無符號數(shù):0 2
17、n-1一般:一般:8位:位:0255,16位:位:0 65535有符號數(shù):有符號數(shù):-2n-1 2n-1-1一般:一般:8位:位:-128127,16位:位:-32768 32767計算機中數(shù)的表示 前一頁 下一頁 休息26實數(shù)的表示l數(shù)學上的實數(shù)有兩種表示形式數(shù)學上的實數(shù)有兩種表示形式實數(shù)形式:實數(shù)形式:例:例:56.72、-0.00125指數(shù)形式:指數(shù)形式:例:例:0.5672102 = 5.672 101 =0.05672 10-3 -0.12510-2 = -12.510-4注意:指數(shù)形式的表示不是唯一的。注意:指數(shù)形式的表示不是唯一的??茖W計數(shù)法科學計數(shù)法:指數(shù)尾數(shù)是純小數(shù)且第一位小
18、數(shù)不為指數(shù)尾數(shù)是純小數(shù)且第一位小數(shù)不為0的指數(shù)形式。的指數(shù)形式。例:例:56.72 0.5672102 -0.00125 -0.12510-2 計算機中數(shù)的表示 前一頁 下一頁 休息27實數(shù)的表示 l計算機中以指數(shù)形式中的科學計數(shù)法表示實計算機中以指數(shù)形式中的科學計數(shù)法表示實數(shù)數(shù)例:例: N= -33.5D=-10001.1B=-0.1000112101 階符階符階碼階碼數(shù)符數(shù)符尾數(shù)尾數(shù) 指數(shù)符號指數(shù)符號 指數(shù)指數(shù) 符號符號 數(shù)值數(shù)值 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 階碼階碼8位位 尾數(shù)尾數(shù)24位(
19、字長位(字長32位位 )M說明:浮點法編碼隨使用的系統(tǒng)而不同說明:浮點法編碼隨使用的系統(tǒng)而不同M例:例:Pentium尾數(shù)使用原碼階碼使用偏移碼尾數(shù)使用原碼階碼使用偏移碼計算機中數(shù)的表示 前一頁 下一頁 休息28文字信息在計算機中的表示l西文字符用西文字符用ASCII碼存放碼存放C+使用擴充使用擴充ASCII碼,共有碼,共有256個字符,編個字符,編碼從碼從0255。 包括大小寫英文字母及數(shù)字、標點符號和一包括大小寫英文字母及數(shù)字、標點符號和一些控制字符,前些控制字符,前32個為不可見字符。個為不可見字符。 一個英文字符占一個字節(jié)一個英文字符占一個字節(jié)8位二進制編碼位二進制編碼例:例:A編碼為
20、:編碼為:01000001B41H65Da編碼為:編碼為: 01100001B61H97D 0編碼為:編碼為: 00110000B30H48D西文字符 前一頁 下一頁 休息29字符的編碼標準ASCII碼字符集 前一頁 下一頁 休息30文字信息在計算機中的表示l中文字符用機內碼存放中文字符用機內碼存放機內碼由國家統(tǒng)一制定編碼標準機內碼由國家統(tǒng)一制定編碼標準漢字編碼的種類:漢字編碼的種類:GB2312-80:6763個簡化字漢字和個簡化字漢字和682個圖形符號個圖形符號GBK-95: 21003個漢字,簡化字繁體字個漢字,簡化字繁體字+CJKGB18030-2000:超過超過27000個漢字個漢字
21、臺灣標準:臺灣標準:BIG5繁體字繁體字一個中文字符占兩個字節(jié),且為與英文字符一個中文字符占兩個字節(jié),且為與英文字符區(qū)別,每個字符第一位為區(qū)別,每個字符第一位為1C+一般語句不接受中文字符,僅在輸出或一般語句不接受中文字符,僅在輸出或字符串中可以使用字符串中可以使用中文字符31第一節(jié) 基本數(shù)據(jù)類型數(shù)據(jù)類型概述數(shù)據(jù)類型概述常量與變量常量與變量 前一頁 下一頁 休息32數(shù)據(jù)類型概述l數(shù)據(jù)是程序處理的對象數(shù)據(jù)是程序處理的對象l不同的數(shù)據(jù)處理方式不同不同的數(shù)據(jù)處理方式不同l數(shù)據(jù)根據(jù)使用及存儲方式分成各種數(shù)據(jù)類型數(shù)據(jù)根據(jù)使用及存儲方式分成各種數(shù)據(jù)類型l每種數(shù)據(jù)類型允許進行的操作不同每種數(shù)據(jù)類型允許進行的
22、操作不同l數(shù)據(jù)類型分成兩大類數(shù)據(jù)類型分成兩大類基本型:每種類型擁有不同的內存空間基本型:每種類型擁有不同的內存空間構造型:用于成批處理數(shù)據(jù),由基本型構造型:用于成批處理數(shù)據(jù),由基本型數(shù)據(jù)組成數(shù)據(jù)組成 前一頁 下一頁 休息33數(shù)據(jù)類型概述l說明:說明:每種類型可分成若干子類型。每種類型可分成若干子類型。各種類型用不同關鍵字表示。各種類型用不同關鍵字表示。M關鍵字是由系統(tǒng)指定用于表示特殊含義的單詞,關鍵字是由系統(tǒng)指定用于表示特殊含義的單詞,用戶禁止使用(參見教材用戶禁止使用(參見教材P6)。C的數(shù)據(jù)類型基基本本類類型型 整整型型 字字符符型型 浮浮點點型型 枚枚舉舉型型 構構造造類類型型 數(shù)數(shù)組組
23、類類型型 結結構構體體類類型型 共共用用體體類類型型 指指針針類類型型 空空類類型型 前一頁 下一頁 休息34C C的基本數(shù)據(jù)類型的基本數(shù)據(jù)類型類型類型位寬位寬字節(jié)字節(jié)數(shù)據(jù)范圍數(shù)據(jù)范圍布爾型布爾型bool81true(1),false( 0)字符型字符型char81-128 127整整型型short int162-32768 32767int324-214783648 214783647unsigned int3240 429467295(232-1)long int 324-2147483648 214783647unsigned long int3240 429467295(232-1)實
24、實型型float3243.4E-38 3.4E+38double6481.7E-308 1.7E+308long double6481.7E-308 1.7E+308 前一頁 下一頁 休息35常量與變量lC+中的常量與變量的定義與數(shù)學基本中的常量與變量的定義與數(shù)學基本相同相同l常量常量常量是在程序執(zhí)行的過程中,其值不變的常量是在程序執(zhí)行的過程中,其值不變的量,常為數(shù)值或字符量,常為數(shù)值或字符例:例:3.5,-12,Wel變量變量變量就是值在程序執(zhí)行的過程中可變的量,變量就是值在程序執(zhí)行的過程中可變的量,常用符號表示常用符號表示例:例:x 前一頁 下一頁 休息36C+數(shù)值常量C+中的常量lC+常
25、量根據(jù)數(shù)據(jù)類型的不同分類常量根據(jù)數(shù)據(jù)類型的不同分類l整常量:整常量:短整型和整型為默認類型短整型和整型為默認類型例:例:12, 0, -20( short ),68046,-40825( int )長整型數(shù)后加長整型數(shù)后加L( 或或l )表示:表示:例:例: 12L , -12l無符號數(shù)后加無符號數(shù)后加U ( 或或u ) :例:例:35u, 34UL,17lu允許直接使用八進制和十六進制數(shù)允許直接使用八進制和十六進制數(shù)數(shù)字前加數(shù)字前加0表示八進制數(shù)。例:表示八進制數(shù)。例: 020,數(shù)字前加數(shù)字前加0 x表示十六進制數(shù)。例:表示十六進制數(shù)。例: 0 x35 ,0XABCL程序中使用八和十六進制時
26、一般視為無符號數(shù)程序中使用八和十六進制時一般視為無符號數(shù)注意:(注意:(082,ox12,0 xagfl等都是錯誤的)等都是錯誤的) 前一頁 下一頁 休息37C+中的常量l浮點常量:浮點常量:一般形式:一般形式:3.1425, .15 ,-3.84指數(shù)形式:指數(shù)形式:1e-1,-12.3E3等;等;M 注意:(注意:(12,E1,12E,.E2等都是錯誤等都是錯誤的)的)l布爾型常量:布爾型常量:只有只有 false 和和 true 兩個值,無定界符兩個值,無定界符 前一頁 下一頁 休息38C+中的常量C+字符常量l字符常量:字符常量: 字符型常量是用單引號括起來的一字符型常量是用單引號括起來
27、的一 個字符。個字符。例:例: A , c , 5 字符型常量以字符型常量以ASCII碼存儲,占碼存儲,占1個字節(jié),用個字節(jié),用8個二進制位表示。個二進制位表示。例: A 0100 0001M錯誤例:錯誤例: AB , x123 ,0X41、0101 不可見或不能輸入的字符用轉義字符表示不可見或不能輸入的字符用轉義字符表示轉義字符由轉義字符由“”加一個字符或加一個字符或3個數(shù)字組成個數(shù)字組成例:例: n , 101 , 012 , x41 前一頁 下一頁 休息39字符形式字符形式功功 能能n換行換行t橫向跳到下一個輸出區(qū)橫向跳到下一個輸出區(qū)*反斜扛字符反斜扛字符 單引號字符單引號字符 雙引號字
28、符雙引號字符ddd或或0dd 8進制數(shù)對應的進制數(shù)對應的ASCII碼字符碼字符xhh16進制數(shù)對應的進制數(shù)對應的ASCII碼字符碼字符C+中的常量C+轉義字符(表2.2)返回 前一頁 下一頁 休息40C+字符串常量l字符串常量:字符串常量是使用雙引號括字符串常量:字符串常量是使用雙引號括起來的字符序列。(可包括空格)起來的字符序列。(可包括空格)例:例:How do you do.、 A145x6ax6f l說明:說明:雙引號中不能出現(xiàn)雙引號、單引號、反斜線、雙引號中不能出現(xiàn)雙引號、單引號、反斜線、換行符等換行符等如果需要出現(xiàn),必須使用轉義字符如果需要出現(xiàn),必須使用轉義字符例例 good ,
29、hellon ok,表示字符串:表示字符串:good和和 hello ok 同樣,程序中如表示文件路徑應為:同樣,程序中如表示文件路徑應為: C: my Documects file.cppC+中的常量 前一頁 下一頁 休息41C+字符串常量l字符串存儲:字符串存儲:逐個字符存放,每個字符占用逐個字符存放,每個字符占用1字節(jié),存儲字節(jié),存儲相應的相應的ASCII碼碼n個字符時系統(tǒng)要分配個字符時系統(tǒng)要分配n+1個字節(jié)空間,因個字節(jié)空間,因為系統(tǒng)自動在最后加一個為系統(tǒng)自動在最后加一個“串終止符串終止符” 0例例:CHINAC+中的常量 C H I N A 0a 0aM注意:注意:char c; c
30、=a;M注意:注意:a a 前一頁 下一頁 休息42C+字符串常量l說明:說明:字符串常量可以使用繼行符字符串常量可以使用繼行符“”。即一個字。即一個字符串常量在一行寫不下時,可以延長到若干符串常量在一行寫不下時,可以延長到若干行。行。例:例:Copyright 1984 AT&T International Incorporated. All right reserved.C+中的常量 前一頁 下一頁 休息43C+符號常量l符號常量(標識符常量)的定義:符號常量(標識符常量)的定義:用標識符(用戶自起名稱)代表一個常量用標識符(用戶自起名稱)代表一個常量目的:增加程序可讀性、通用性和
31、方便性目的:增加程序可讀性、通用性和方便性l符號常量聲明格式:符號常量聲明格式:#define 符號常量名符號常量名 常量值常量值C+中的常量關鍵字用戶自定名真值#define PI 3 .1415926area = PI *r * rconst 數(shù)據(jù)類型說明數(shù)據(jù)類型說明 符號常量名符號常量名=常量值常量值const double PI = 3 .1415926 前一頁 下一頁 休息44l符號常量例:符號常量例:(NO2.2-1) #define PI 3.14159 void main( ) float len, area, r;r = 3.5; len = 2.0 *PI * r; are
32、a = PI * r * r;cout 周長周長 len n面積面積 area endl; C+中的符號常量C+中的常量 前一頁 下一頁 休息45C+中的變量l變量定義變量定義變量遵循變量遵循“先定義,后使用先定義,后使用”的原則的原則定義任務:指定變量名稱、數(shù)據(jù)類型及存儲類型定義任務:指定變量名稱、數(shù)據(jù)類型及存儲類型l變量命名規(guī)則變量命名規(guī)則必須遵守標識符原則必須遵守標識符原則嚴格區(qū)分字符大小寫嚴格區(qū)分字符大小寫不能與不能與“關鍵字關鍵字”重名重名標識符規(guī)則:標識符規(guī)則:只能使用字母、數(shù)字和下劃線只能使用字母、數(shù)字和下劃線首字只能是字母或下劃線首字只能是字母或下劃線1.標識符的最多字符個數(shù)與
33、系統(tǒng)有關標識符的最多字符個數(shù)與系統(tǒng)有關(VC+為為247) 前一頁 下一頁 休息46C+中的變量變量的聲明(定義)l變量聲明格式:變量聲明格式:數(shù)據(jù)類型名數(shù)據(jù)類型名 變量名變量名1,變量名變量名2,;例例1:int a; /定義整型變量定義整型變量a float volume; /定義浮點型變量定義浮點型變量volume double x1; /定義雙精度變量定義雙精度變量x1 char _1B; / 定義字符變量定義字符變量_1B bool flag;/字義布爾型變量字義布爾型變量flag例例2:下列標識符中錯誤的是?下列標識符中錯誤的是?isReady _1_2A PAN. who? sp
34、-ptro3L h(var) 6str tree9_1 float 前一頁 下一頁 休息47C+中的變量C+變量類型l整型整型基本型:類型名:基本型:類型名:int短整型:類型名:短整型:類型名: short int或或short長整型:類型名:長整型:類型名: long int或或long無符號型:無符號型:含義:存儲時最高位是數(shù)值而不是符號含義:存儲時最高位是數(shù)值而不是符號類型名:類型名:unsigned分類:分類:無符號短整型,類型名:無符號短整型,類型名: unsigned short無符號長整型,類型名:無符號長整型,類型名:unsigned long 前一頁 下一頁 休息48C+變
35、量類型l實型實型單精度型:類型名:單精度型:類型名: float,有效位數(shù),有效位數(shù)7位位雙精度型:類型名:雙精度型:類型名: double,有效位數(shù),有效位數(shù)15位位長雙精度型:類型名:長雙精度型:類型名: long double ,有效位數(shù),有效位數(shù)15位位l字符型:字符型:字符型:類型名:字符型:類型名:char有符號字符型:類型名:有符號字符型:類型名:singed char無符號字符型:類型名:無符號字符型:類型名:unsigned char M注意:注意:M有無符號僅影響轉換成整型時,每一位是否處理成符號位有無符號僅影響轉換成整型時,每一位是否處理成符號位M字符型變量只能存儲一個字
36、符,字符型變量只能存儲一個字符, C+ 沒有字符串型變量沒有字符串型變量C+中的變量 前一頁 下一頁 休息49C+變量類型l說明:說明:布爾型變量只有布爾型變量只有 false 和和 true 兩個值兩個值多個同類型變量可以用一個類型名定義多個同類型變量可以用一個類型名定義例:例: int a, b, A, B; 或或 int a; int b; int A; int B;不同類型變量也可在一行定義不同類型變量也可在一行定義 char D; float d;C+中的變量 前一頁 下一頁 休息50變量的存儲l變量存儲:變量存儲:變量聲明后系統(tǒng)會在內存中分配一定存儲變量聲明后系統(tǒng)會在內存中分配一定
37、存儲單元用于存放變量的值單元用于存放變量的值各種類型的變量在內存中分到的字節(jié)數(shù)是固定的各種類型的變量在內存中分到的字節(jié)數(shù)是固定的變量所分空間第一個字節(jié)的地址稱為變量的地址變量所分空間第一個字節(jié)的地址稱為變量的地址各類型數(shù)據(jù)存儲編碼亦不同。各類型數(shù)據(jù)存儲編碼亦不同。變量名變量名 a5存儲單元存儲單元C+中的變量 前一頁 下一頁 休息51 整數(shù)按補碼存放整數(shù)按補碼存放00000000000000111 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1int c= -15例:例: short short int a=3數(shù)符數(shù)符
38、11B-1111B數(shù)符數(shù)符尾數(shù)尾數(shù)1515位位尾數(shù)尾數(shù)3131位,按補碼規(guī)則求反加一位,按補碼規(guī)則求反加一變量的存儲 返回C+中的變量 前一頁 下一頁 休息52例:例:char c=a; 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0000000000101100001 實數(shù)按浮點數(shù)用原碼存放實數(shù)按浮點數(shù)用原碼存放例:例:float f = -25.75 =-11001.11B階符階符數(shù)符數(shù)符階碼階碼尾數(shù)尾數(shù) 字符型按字符型按ASCII碼存放碼存放=-0.11001112101v注意:注意:字符數(shù)據(jù)可用字符數(shù)據(jù)可用ASCII碼和整型數(shù)據(jù)進行混合運算。碼和整型數(shù)據(jù)進行混合運算。變
39、量的存儲C+中的變量 前一頁 下一頁 休息53變量的初值l變量賦初值:變量賦初值:就是指在定義變量的同時給變量一個值。就是指在定義變量的同時給變量一個值。格式:格式:變量說明變量說明 = 初值初值變量說明(初值)變量說明(初值)例:例: char c=a; bool b= true;short int a( 3 ); float f ( -71.875 ); C+中的變量 前一頁 下一頁 休息54存儲類型存儲類型說說 明明auto堆棧方式存儲在動態(tài)存儲區(qū)堆棧方式存儲在動態(tài)存儲區(qū)register存儲在通用寄存器中存儲在通用寄存器中extern在所有函數(shù)和程序段中都可引用在所有函數(shù)和程序段中都可引
40、用static存儲在靜態(tài)存儲區(qū)存儲在靜態(tài)存儲區(qū)常量與變量C+變量存儲類型例例: static int net; /定義靜態(tài)整型變量定義靜態(tài)整型變量net 前一頁 下一頁 休息55C+程序實例#include / no2.2-2.cppvoid main( ) const double PI = 3.14159; float v, area, r,h; cout r; h = 3.2; area = PI * r * r; v = PI * r * r * h; cout 底面積底面積 arean圓柱體體積圓柱體體積 v endl;編譯預處理主函數(shù)定義符號常量定義變量輸入數(shù)據(jù)常量直接賦值計算輸出
41、結果 前一頁 下一頁 休息56常量與變量運行結果:運行結果:請輸入半徑:請輸入半徑:2.5底面積底面積 19.635圓柱體體積圓柱體體積 62.8318C+程序實例57第二節(jié) 運算符與表達式基本運算符與表達式基本運算符與表達式算術運算符與表達式算術運算符與表達式關系運算符與表達式關系運算符與表達式邏輯運算符與表達式邏輯運算符與表達式賦值運算符與表達式賦值運算符與表達式條件運算符與表達式條件運算符與表達式逗號運算符與表達式逗號運算符與表達式C+常用庫函數(shù)常用庫函數(shù) 前一頁 下一頁 休息58基本運算符與表達式l運算符是數(shù)據(jù)處理的工具運算符是數(shù)據(jù)處理的工具l運算符和運算量一起組成表達式運算符和運算量
42、一起組成表達式l運算符基本要素運算符基本要素符號與功能符號與功能運算量數(shù)目要求:分單目、雙目和三目運算量數(shù)目要求:分單目、雙目和三目優(yōu)先級:共優(yōu)先級:共15級級結合性:分從左至右、從右至左結合性:分從左至右、從右至左 前一頁 下一頁 休息59運算符與表達式基本運算符與表達式lC+運算符與表達式的分類運算符與表達式的分類算術運算符與算術表達式算術運算符與算術表達式關系運算符與關系表達式關系運算符與關系表達式邏輯運算符與邏輯表達式邏輯運算符與邏輯表達式條件運算符與條件表達式條件運算符與條件表達式位運算運算符與位運算表達式位運算運算符與位運算表達式賦值運算符與賦值表達式賦值運算符與賦值表達式逗號運算
43、符與逗號表達式逗號運算符與逗號表達式 前一頁 下一頁 休息60算術運算符與表達式l算術運算符算術運算符 + - * / %(取余)(取余)l優(yōu)先級:優(yōu)先級:*、/、%同級,比同級,比+、-高高l結合性:結合性:自左至右自左至右M注意:注意:整數(shù)相除,結果取整小數(shù)舍去整數(shù)相除,結果取整小數(shù)舍去例:例:5 / 3 = 1 3 / 5 = 0%僅用于整數(shù),且符號與左邊對象相同僅用于整數(shù),且符號與左邊對象相同例:例:5 % 3 = 2 -3 % 5 = -3 3 % -5 =3運算符與表達式 前一頁 下一頁 休息61自增自減運算符l格式:格式:a+或或+a 等價于等價于 a = a + 1a- -或或
44、- -a 等價于等價于 a = a 1l優(yōu)先級:優(yōu)先級:比比*、/高高l結合性:結合性:從右至左從右至左M注意:注意:+a或或- -a先自加先自加(減減),用新值參與計算,用新值參與計算a +或或a - -先參與計算,然后自加先參與計算,然后自加(減減)例:若例:若a = 1 則則 (+a)+3 值為值為5,a值為值為2 (a +)+3 值為值為4,a值為值為2運算符與表達式 前一頁 下一頁 休息62簡單賦值運算符與表達式l賦值表達式一般形式:賦值表達式一般形式:變量變量 = 表達式表達式例:例: x = 10 n = y + 5l優(yōu)先級優(yōu)先級:倒數(shù)第二級倒數(shù)第二級l結合性:結合性:從右至左從
45、右至左l值:值:等號左邊對象被賦值后的值等號左邊對象被賦值后的值l類型:類型:等號左邊對象的類型等號左邊對象的類型運算符與表達式 前一頁 下一頁 休息63復合賦值運算符l有有10種復合運算符:種復合運算符:+= , -= , *= , /=, %=, = , &= , = , |= 例:例:a += 3 等價于等價于 a = a + 3a /= x 等價于等價于 a = a / 5M注意:注意:復合賦值右邊為表達式時,等同于復合賦值右邊為表達式時,等同于表達式有括號。表達式有括號。 例:例:x *= y+8 等價于等價于 x = x * ( y + 8 )運算符與表達式 前一頁 下一頁
46、 休息64賦值運算符舉例a = 5表達式值為表達式值為5a = b = c = 5表達式值為表達式值為5,a,b,c均為均為5a = ( b = 4 ) + ( c = 6 )表達式值為表達式值為10,a為為10,b為為4,c為為6a = ( b = 10 ) / ( c = 2 )表達式值為表達式值為5,a為為5,b為為10,c為為2a += a -= a * a 相當于相當于: a = a + ( a = a - a*a ) 若若a=5,則表達式值為,則表達式值為 -40運算符與表達式 前一頁 下一頁 休息65逗號運算和逗號表達式l逗號運算符格式:逗號運算符格式:表達式表達式1,表達式表達
47、式2,l求解順序及結果:求解順序及結果:先求解先求解1,再求解,再求解2,最終結果為表達式,最終結果為表達式2的值的值l優(yōu)先級優(yōu)先級:倒數(shù)第一級倒數(shù)第一級l結合性:結合性:從左至右從左至右 例例 a=3*5,a*4 最終結果為最終結果為60 a = 15運算符與表達式 前一頁 下一頁 休息66關系運算符與關系表達式l關系運算符關系運算符:用于比較運算即判斷條件是否成立用于比較運算即判斷條件是否成立l符號與優(yōu)先級:符號與優(yōu)先級: = = != 優(yōu)先級相同(高)優(yōu)先級相同(低)優(yōu)先級相同(高)優(yōu)先級相同(低)l 關系運算符優(yōu)先級低于算術運算符關系運算符優(yōu)先級低于算術運算符l結合性:從左至右結合性:
48、從左至右l結果:邏輯值,即只能為結果:邏輯值,即只能為 1(true) 或或 0(false)例:設例:設a = 2, b = 3, c = 4, x = 1, y = 2 則:則:a b 值為值為False(0) c b ) & ( xy ) 值為值為False 運算符與表達式 前一頁 下一頁 休息68邏輯運算符與邏輯表達式M注意:注意:M bool 值參與計算時,以值參與計算時,以0為假;以為假;以1為真為真M求出的求出的 表達式值,以表達式值,以0為假;以非為假;以非0為真為真M混合運算優(yōu)先級:括號、單目、算術、關系、混合運算優(yōu)先級:括號、單目、算術、關系、邏輯邏輯運算符與表達式
49、 前一頁 下一頁 休息69邏輯運算符與邏輯表達式l練習:練習:設設 a = 3 b=4 c=5 x = 1 y = 2,求出下列表達式的值求出下列表達式的值!( a + b ) + c 1 & b + c / 2表達式值為表達式值為 truet = ( m = a b ) & ( c = = x b ) & ( ( +x ) y ) 表達式值為表達式值為False , a值為值為4, x值為值為1M注意:注意:&左式值為左式值為0,| 左式值為左式值為1時,時,右式將不再計算。右式將不再計算。運算符與表達式 前一頁 下一頁 休息70條件運算符與條件表達式l一般形
50、式:一般形式:表達式表達式1 1?表達式?表達式2 2:表達式:表達式3 3表達式表達式1 1 必須是必須是 bool bool 類型類型l執(zhí)行順序:執(zhí)行順序:先求解先求解表達式表達式1 1,若表達式若表達式1 1的值為的值為truetrue,則求解,則求解表達式表達式2 2,表達式表達式2 2的值為最終結果的值為最終結果若表達式若表達式1 1的值為的值為falsefalse,則求解,則求解表達式表達式3 3,表達式表達式3 3的值為最終結果的值為最終結果運算符與表達式 前一頁 下一頁 休息71條件運算符與條件表達式l實例:實例:設設 a = 2, b = 3, x = 1, y = 2 c
51、= ( ab ) ? x+a : y+a c 值為值為 4 l說明:說明:條件運算符優(yōu)級高于賦值運算符,低于邏輯運算條件運算符優(yōu)級高于賦值運算符,低于邏輯運算符符結合方向為自右至左結合方向為自右至左M注意:表達式注意:表達式2、3的類型可以不同,條件表達式的類型可以不同,條件表達式的最終類型為的最終類型為 2 和和 3 中較高的類型。中較高的類型。運算符與表達式 前一頁 下一頁 休息72位運算運算符與表達式l位運算指深入字節(jié)內部,按單個二進位運算指深入字節(jié)內部,按單個二進制位進行運算制位進行運算l運算規(guī)則運算規(guī)則對運算量按每一個二進制位進行運算對運算量按每一個二進制位進行運算l運算特點:運算特
52、點:每位運算結果只有每位運算結果只有0和和1兩種兩種相鄰兩個位之間不存在進位問題相鄰兩個位之間不存在進位問題運算符與表達式 前一頁 下一頁 休息73位運算運算符與表達式l運算符:運算符:邏輯位運算:邏輯位運算:(按位與)(按位與)(按位或)(按位或)(按位異或)(按位異或)(取反,單目運算符)(取反,單目運算符)移位運算:移位運算:(左移)(左移)(右移)(右移) 運算符與表達式 前一頁 下一頁 休息74位運算運算符與表達式l優(yōu)先級:優(yōu)先級:本類:本類:總排位:總排位:算術算術移位移位關系關系 邏輯位運算邏輯位運算邏輯邏輯與一般單目運算符相同與一般單目運算符相同l結合性:結合性:從右往左:從右
53、往左其余:從左往右其余:從左往右運算符與表達式 前一頁 下一頁 休息75位運算-按位與(&)l按位與運算規(guī)則按位與運算規(guī)則兩個運算量相應位都是兩個運算量相應位都是1結果為結果為1,否則為,否則為0l舉例:計算舉例:計算 3 & 5 3 3: 0 0 0 0 0 0 1 10 0 0 0 0 0 1 1 5 5:(&) 0 0 0 0 0 1 0 1(&) 0 0 0 0 0 1 0 13 & 5: 0 0 0 0 0 0 0 13 & 5: 0 0 0 0 0 0 0 1l特點:特點:與與0運算,結果為運算,結果為0;與與1運算,結果不變運算,結
54、果不變運算符與表達式 前一頁 下一頁 休息76位運算-按位與(&)l用途:用途:將某一位置將某一位置0,其它位不變。,其它位不變。例:將例:將 char 型變量型變量 a 的最低位置的最低位置 0: a = a & 0376 = a & 11,111,110取指定位。取指定位。例:有例:有 char c; short int a; 取出取出 a 的低字節(jié),置于的低字節(jié),置于 c 中:中: c = a & 0377 = a & 00000000 11111111運算符與表達式 前一頁 下一頁 休息77位運算-按位或(|)l按位或運算規(guī)則按位或運算規(guī)則兩個運
55、算量相應位都是兩個運算量相應位都是0結果為結果為0,否則為,否則為1l舉例:計算舉例:計算 3 | 5 3 3: 0 0 0 0 0 0 1 10 0 0 0 0 0 1 1 5 5:(|) 0 0 0 0 0 1 0 1(|) 0 0 0 0 0 1 0 13 | 5: 0 0 0 0 0 1 1 13 | 5: 0 0 0 0 0 1 1 1l特點:特點:與與1運算,結果為運算,結果為1;與與0運算,結果不變運算,結果不變運算符與表達式 前一頁 下一頁 休息78位運算-按位或(|)l用途:用途:將某些位置將某些位置1,其它位不變。,其它位不變。例如:將例如:將 short int 型變量型
56、變量 a 的低字節(jié)置的低字節(jié)置 1 : a = a | 0 xff = a | 00000000 11111111運算符與表達式 前一頁 下一頁 休息79位運算-按位異或()l按位異或運算規(guī)則按位異或運算規(guī)則兩個操作數(shù)進行異或:兩個操作數(shù)進行異或:若對應位若對應位相同相同,則結果該位為,則結果該位為 0,若對應位若對應位不同不同,則結果該位為,則結果該位為 1,l舉例:計算舉例:計算 071052 071: 071: 0 0 1 1 1 0 0 10 0 1 1 1 0 0 1 052 052: () 0 0 1 0 1 0 1 0() 0 0 1 0 1 0 1 0 071052 : 071
57、052 : 0 0 0 1 0 0 1 10 0 0 1 0 0 1 1運算符與表達式 前一頁 下一頁 休息80位運算-按位異或()l用途:用途:使特定位翻轉(與使特定位翻轉(與0異或保持原值,與異或保持原值,與1異異或取反)或取反) 例如:要使例如:要使 01111010 低四位翻轉:低四位翻轉: 0 1 1 1 1 0 1 0 () 0 0 0 0 1 1 1 1 0 1 1 1 0 1 0 1運算符與表達式 前一頁 下一頁 休息81位運算-按位異或()l用途:用途:交換二個變量的值交換二個變量的值 例如:例如:a = 3, b = 4,想將想將a, b 的值互換,公式為:的值互換,公式為
58、:a = a b; b = b a; a = a b; 0 0 0 0 0 0 1 1 () 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 a = 7 () 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 b = 3 () 0 0 0 0 0 1 1 1 0 0 0 0 0 1 0 0 a = 4運算符與表達式 前一頁 下一頁 休息82位運算-取反()l按位取反()按位取反()單目運算符單目運算符對一個二進制數(shù)按位取反。對一個二進制數(shù)按位取反。例: 025:00000000 00010101 025:11111111 11101010運算符與表達式 前一頁 下
59、一頁 休息83位運算-移位l移位運算移位運算指將一個整數(shù)整體向左或右移動若干位指將一個整數(shù)整體向左或右移動若干位其中:左操作數(shù)為要移位的整數(shù),右操作數(shù)其中:左操作數(shù)為要移位的整數(shù),右操作數(shù)為移動的位數(shù)為移動的位數(shù)l分類運算規(guī)則:分類運算規(guī)則:左移運算(左移運算()右移后,低位:舍棄右移后,低位:舍棄 高位:無符號數(shù):補高位:無符號數(shù):補0 有符號數(shù):補有符號數(shù):補“符號位符號位”運算符與表達式 前一頁 下一頁 休息84 例:例:32 3: 00000011 補補0000 丟棄丟棄 3215: 00001111 丟棄丟棄 補補00 152:00000011 3有符號數(shù):有符號數(shù):-122 -15
60、: 11110100 丟棄丟棄 補補11 -152:11111101 -3說明:右移說明:右移n位相當于除以位相當于除以2n位運算-移位運算符與表達式 前一頁 下一頁 休息85位運算舉例l求出表達式的值求出表達式的值設有定義:設有定義: int a = 1, b = 2, c = 3;a | b ca & b | ca b & -c1.(a 1)結果為-10010& 1101=00001 0000=1 = 100 + 1 = 5 = 1 | 11111100 = -3 運算符與表達式 前一頁 下一頁 休息86sizeof運算符l語法形式語法形式sizeof (類型名類型名) sizeof (表達式表達式) l結果值:結果值:“類型名類型名”所指定的類型或所指定的類型或“表達式表達式”的的結果類型所占的字節(jié)數(shù)。結果類型所占的字節(jié)數(shù)。例
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 35624-2025應急避難場所通用技術要求
- 停車場資產轉讓及管理合同
- 個人租賃合同之三:設備租賃條款解析
- 度投資合伙人合同協(xié)議
- 影視器材采購合同
- 債權債務轉讓合同范本
- Module 6 Unit 2 She visited the Tianchi Lake(教學設計)-2023-2024學年外研版(三起)英語五年級下冊
- 標準民間借款抵押合同
- 極速建站代理合作合同書
- 健身房經營權轉讓合同
- 優(yōu)質護理與人文關懷課件
- 溶劑油MSDS危險化學品安全技術說明書
- 馬工程西方經濟學(第二版)教學課件-2
- 慢阻肺的慢病管理課件
- (中職)化學分析技術項目一 走進化學分析實驗室教學課件
- 探放水工培訓教材
- 某縣某年度高標準基本農田建設項目復核報告
- 秘書實務完整版課件全套ppt教程
- 酒店電子商務全套課件
- 質量體系的職能架構
- 《旅游經濟學》全書PPT課件
評論
0/150
提交評論