版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
計算機處理的對象是數(shù)據(jù),而數(shù)據(jù)是以某種特定的形式存在的。2.1C++的數(shù)據(jù)類型姓名:曼迪年齡:10歲身高:123.4CM文本整數(shù)帶有小數(shù)3直徑:24.6CM直徑:12742.02KM不同的數(shù)據(jù)采用不同類型的存儲方式::一個二進制位(bit)存儲陣列數(shù)據(jù)的存儲方式::8位一個字節(jié)(byte)存儲陣列數(shù)據(jù)的存儲方式::16位一個字(word)存儲陣列數(shù)據(jù)的存儲方式::32位一個字(word)存儲陣列數(shù)據(jù)的存儲方式C++中使用的數(shù)據(jù)類型基本類型整型、字符型、浮點型(實型)、布爾型、空類型構(gòu)造類型枚舉類型、數(shù)組類型、結(jié)構(gòu)體類型、共用體類型、類類型指針類型數(shù)據(jù)類型是所有程序的基礎(chǔ)數(shù)據(jù)類型可以告訴我們:
計算機為數(shù)據(jù)提供了多大的存儲空間
數(shù)據(jù)代表什么意思
可以對數(shù)據(jù)執(zhí)行哪些操作一、整型類型類型標識符字節(jié)數(shù)值范圍備注短整型short[int]2-32768~32767-215~215-1無符號短整型unsignedshort[int]20~655350~216-1整型[signed]int4-2147483648~2147483647-231~231-1無符號整型unsigned[int]40~42949672950~232-1長整型long[int]4-2147483648~2147483647-231~231-1無符號長整型unsignedlong[int]40~42949672950~232-1inta=23;shortintb=45;131、整型數(shù)據(jù)的表示方法十進制(Decimal)八進制(Octal)十六進制(Hexadecimal)inta=21;inta=021;inta=0x21;輸出:21輸出:17輸出:33整型數(shù)據(jù)按二進制數(shù)形式存儲在內(nèi)存中的存儲形式(2個字節(jié))1、整型數(shù)據(jù)的存儲方式十進制50110010二進制0000000000110010高地址字節(jié)低地址字節(jié)152、有符號數(shù)與無符號數(shù)無符號數(shù)沒有符號位,只能表示非負數(shù)無符號數(shù)類型必須指定為unsigned16有符號數(shù)二進制補碼表示,首位為符號位指定signed或缺省情況,即為有符號數(shù)(1)補碼的概念
正數(shù):與原碼一致,首位為0
負數(shù):絕對值取反加1,首位為1
零:各位全為0(2)補碼舉例0000000000110010111111111100110150的原碼-50的補碼取反加1
1111111111001110shortinti=-50;//占2字節(jié)若把負數(shù)賦值給無符號數(shù),會出現(xiàn)什么情況?(3)有符號數(shù)與無符號數(shù)舉例intmain(){shortintx=-50;unsignedshortinty;y=x;cout<<“x="<<x<<endl;cout<<“y="<<y<<endl;}1111111111001110-50的補碼xy=x;y65486的原碼1111111111001110若把負數(shù)賦值給無符號數(shù),則把該負數(shù)的補碼當作無符號數(shù)進行處理。3、整型數(shù)據(jù)的溢出(Overflow)
數(shù)據(jù)超出了變量能夠存儲的范圍,造成數(shù)據(jù)丟失或數(shù)值改變等。intmain(){shortinta=32767;a=a+1;cout<<"a="<<a<<endl;}0111111111111111+132767的原碼1000000000000000整數(shù)的環(huán)繞特性
一個正數(shù)大到了極點就會變成負數(shù);一個負數(shù)小到了極點就會變成正數(shù)。-32768的補碼1、浮點型的表示方法2.2浮點型31.4159a=0.314159e2a=3.14159e1a=31.4159e0a=314.159e-1規(guī)范化指數(shù)形式以10為底floata=31.4159;floata=3.14159e1;
在程序中不論把浮點數(shù)寫成小數(shù)形式還是指數(shù)形式,在內(nèi)存中都是以指數(shù)形式(即浮點形式)存儲的。類型類型標識符字節(jié)絕對值范圍單精度型float43.4×10-38~3.4×1038雙精度型double81.7×10-308~1.7×10308長雙精度型longdouble81.7×10-308~1.7×103086位有效數(shù)字15位有效數(shù)字27313029282726252423222120191817161514131211109876543210
指數(shù)位尾數(shù)位符號位1、浮點數(shù)的存儲方式ABCD內(nèi)存中逆序存儲:DCBA浮點數(shù)123456.0f的轉(zhuǎn)換過程123456.011110001001000000.01.11100010010000000轉(zhuǎn)化為二進制小數(shù)點左移16位1.11100010010000000*(2^16)刪除最高位的111100010010000000后面用0補夠23位11100010010000000000000指數(shù)位共8位,可以表示范圍是0~255的無符號整數(shù),也可以表示-128~127的有符號整數(shù)。但因為指數(shù)是可以為負的,所以為了統(tǒng)一把十進制的整數(shù)化為二進制時,都先加上127。16+127=143二進制表示為:10001111符號位(整數(shù)):0010001111111000100100000000000003130292827262524232221201918171615141312111098765432100100011
1
1
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
指數(shù)位尾數(shù)位符號位01000111111100010010000000000000轉(zhuǎn)化為16進制:47F12000高低位顛倒:0020F147內(nèi)存中應顯示:00315447練習54321.02、浮點型數(shù)據(jù)的舍入誤差由于浮點型變量能夠表示的有效數(shù)字有限,將有效位以外的數(shù)字舍去造成誤差。intmain(){floata=123.456741e5;cout<<a<<endl;return0;}浮點數(shù)123.456f的轉(zhuǎn)換過程整數(shù)部轉(zhuǎn)化為二進制11110110.456轉(zhuǎn)化為二進制十進制小數(shù)轉(zhuǎn)化為二進制數(shù)方法
乘以2直到?jīng)]有了小數(shù)為止(取整數(shù)部分為二進制位)。0.456*2=0.9120.912*2=1.8240.824*2=1.6480.648*2=1.2960.296*2=0.5920.592*2=1.1840.184*2=0.3680.368*2=0.7360.736*2=1.4720.472*2=0.944…取整數(shù)部分0111010010…即使超過尾數(shù)的最大長度23位也仍有小數(shù)!這就是著名的浮點數(shù)精度問題。1111011.01110100101111001加上前面的整數(shù)部算夠24位即可小數(shù)點左移6位1.111011011101001011110011.11101101110100101111001*(2^6)刪除最高位的111101101110100101111001010000101111011011101001011110016+127=133二進制表示為:10000101
符號位(整數(shù)):0轉(zhuǎn)化為16進制:42F6E979高低位顛倒:79E9F642四、字符型charch='A';
只能包括一個字符單引號(′)是定界符占一個字節(jié)1、字符型數(shù)據(jù)在內(nèi)存中的存儲形式存放該字符相應的ASCII代碼01000001'A'字符型數(shù)據(jù)和整型數(shù)據(jù)可以通用40intmain(){ inti,j; charc1; i='A'+5; j='B'; c1=65+5; cout<<"i="<<i<<''<<"j="<<j<<'\n'; cout<<"c1="<<c1<<endl; return0;}注意:字符型數(shù)據(jù)只能存放0~255范圍內(nèi)的整數(shù)。41將小寫字母轉(zhuǎn)換為大寫字母。intmain(){ charc1,c2; c1='a'; c2='b'; c1=c1-32; c2=c2-32; cout<<c1<<''<<c2<<endl; return0;}
有些ASCII的字符代表某些操作,不能打印出來,如回車、換行等,可用兩種方式表示這些字符。
1)用ASCII碼的形式
charre=13;
2)用轉(zhuǎn)義字符
charre=
′\n′;2、轉(zhuǎn)義字符43轉(zhuǎn)義字符
意義ASCII碼值(十進制)\a響鈴(BEL)007\b退格(BS)008\f換頁(FF)012\n換行(LF)010\r回車(CR)013\t水平制表(HT)009\v垂直制表(VT)011\\反斜杠092\?問號字符063\'單引號字符039\"雙引號字符034\0空字符(NULL)000\ddd1到3位8進制數(shù)所代表的字符\xhh1到2位16進制數(shù)所代表的字符可以利用以下代碼顯示擴展ASCII碼:system("chcp437");利用以下代碼轉(zhuǎn)回中文顯示:system("chcp936");45
編譯系統(tǒng)在見到字符“\”時,會接著找它后面的字符,把它處理成一個字符,在內(nèi)存中只占一個字節(jié)。
intmain(){ inta=1; cout<<a<<""<<a<<endl; cout<<a<<"\t"<<a<<endl; return0;}intmain(){ cout<<"c:\tc\tc"<<endl; return0;}intmain(){ cout<<"c:\\tc\\tc"<<endl; return0;}五、變量的定義在程序運行期間其值可以改變的量稱為變量。inta;floatb;doublec;chard;變量類型變量名變量有一個名字,即標識符變量在內(nèi)存中占據(jù)一定的存儲單元變量占據(jù)存儲空間的大小由其類型決定程序使用變量名表示這個變量所占據(jù)的存儲單元里存儲的數(shù)據(jù)的值變量要“先定義,后使用”481、變量的命名規(guī)則
只能由字母、數(shù)字、下劃線(‘_’)組成;第一個字符必須為字母或下劃線;
C++語言標識符是大小寫敏感的;不要與關(guān)鍵字、系統(tǒng)函數(shù)名和類名重復。合法的變量名:
sum,average,total,day,month,Student_name,tan,BASIC,li_ling不合法的標識符和變量名:
M.D.John,$123,#33,3G64,Lingli,C++,Zhang-ling,U.S.A.50asmautobreakcasecatchcharclassconstcontinuedefaultdeletedodoubleelseenumexternfloatforfriendgotoifinlineintlongnewoperatoroverloadprivateprotectedpublicregisterreturnshortsignedsizeofstaticstructswitchthistemplatethrowtrytypedefunionunsignedvirtualvoidvolatilewhileC++常用的關(guān)鍵字:
標識符應當直觀且可以拼讀,可望文知意,不必進行“解碼”。標識符最好采用英文單詞或其組合,便于記憶和閱讀。切忌使用漢語拼音來命名。程序中的英文單詞用詞應當準確。
例如:不要把CurrentValue寫成NowValue。
單字符的名字也是有用的,常見的如i,j,k,m,n,x,y,z等,它們通??捎米骱瘮?shù)內(nèi)的局部變量。
標識符的長度應當符合“min-length&&max-information”原則。maxvalmaxValueUntilOverflow
例如Windows應用程序的標識符通常采用“大小寫”混排的方式,如AddChild。而Unix應用程序的標識符通常采用“小寫加下劃線”的方式,如add_child。別把這兩類風格混在一起用。
命名規(guī)則盡量與所采用的操作系統(tǒng)或開發(fā)工具的風格保持一致。例如:intx,X; //變量x與X容易混淆voidfoo(intx); //函數(shù)foo與FOO容易混淆voidFOO(floatx);
程序中不要出現(xiàn)僅靠大小寫區(qū)分的相似的標識符。例如:floatvalue;floatoldValue;floatnewValue;
變量的名字應當使用“名詞”或者“形容詞+名詞”。如Value1,Value2等,除非邏輯上的確需要編號。
用正確的反義詞組命名具有互斥意義的變量或相反動作的函數(shù)等。例如:int minValue;int maxValue;int SetValue(…);int GetValue(…);
盡量避免名字中出現(xiàn)數(shù)字編號。2、為變量賦初值可以在定義變量時指定它的初值。floata=3.14;floatb=3.14*2.3*2.3;也可以是表達式floata;a=3.14;常規(guī)方式變量未賦初值即使用,會有什么后果?intmain(){inta;cout<<"a="<<a<<endl;return0;}各次運行情況可能不同原因是什么?59若變量未賦初值即使用,則該變量的初值是一個不可預測的值。3、訪問變量
內(nèi)存單元由操作系統(tǒng)按字節(jié)編號,稱為地址。對象在內(nèi)存中第一個字節(jié)的地址稱為對象的地址。0X0066FDF40X0066FDEC變量a的地址變量b的地址inta;doubleb;由類型符double解釋存儲數(shù)據(jù)由類型符int解釋存儲數(shù)據(jù)取對象b的地址: &b取址運算符六、符號常量和常變量符號常量是以標識符形式出現(xiàn)的常量。#include<iostream>usingnamespacestd;#definePRICE30intmain(){ intnum,total; num=10; total=num*PRICE; cout<<"total="<<total<<endl; return0;}不加分號constinta=3;常變量表示程序運行期間值不能改變的變量。常變量不能被賦值。constinta;a=3;定義常變量時必須同時對它初始化。又稱只讀變量65符號常量和常變量的區(qū)別
符號常量用一個符號代替一個字符串,在預編譯時把所有符號常量替換為所指定的字符串,它沒有類型,在內(nèi)存中并不存在以符號常量命名的存儲單元。常變量具有變量的特征,它具有類型,在內(nèi)存中存在著以它命名的存儲單元。與一般變量惟一的不同是指定變量的值不能改變。
為什么要使用常量?不使用常量所引起的麻煩:(1)程序的可讀性(可理解性)變差。程序員自己會忘記那些數(shù)字或字符串是什么意思,用戶則更加不知它們從何處來、表示什么。(2)在程序的很多地方輸入同樣的數(shù)字或字符串,難保不發(fā)生書寫錯誤。(3)如果要修改數(shù)字或字符串,則會在很多地方改動,既麻煩又容易出錯。67盡量使用含義直觀的常量來表示程序中多次出現(xiàn)的數(shù)字或字符串。七、C++的運算符算術(shù)運算符+-*/%++--關(guān)系運算符><==>=<=!=邏輯運算符!&&||位運算符<<>>~|^&
賦值運算符=及擴展的復合運算符條件運算符?:逗號運算符,指針運算符*&求字節(jié)運算符sizeof強制類型轉(zhuǎn)換符(type)分量運算符.->下標運算符[]其他()newdelete691、基本的算術(shù)運算符運算符名稱舉例說明+正值運算符(正號)+b值不變-負值運算符(負號)-d取相反數(shù)+加法運算符a+3加法-減法運算符c-4減法*乘法運算符a*3乘法/除法運算符c/d除法%模運算符e%4求余數(shù)、取模702、
算術(shù)表達式
用算術(shù)運算符和括號將運算對象連接起來的、符合C++語法規(guī)則的式子,稱C++算術(shù)表達式。運算對象包括常量、變量、函數(shù)等。a*b/c-1.5+'a'71C++語言規(guī)定了運算符的優(yōu)先級和結(jié)合性。圓括號()具有最高的優(yōu)先級72直接舍去商的小數(shù)部分采取“向零取整”兩個整數(shù)相除,結(jié)果也為整數(shù)注意%運算符的兩個操作數(shù)都必須是整數(shù)模運算有什么作用?分解數(shù)字733
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版建筑起重機械安裝與拆卸工程風險評估與管控合同
- 2024年度淘寶天貓店鋪視覺設(shè)計裝修合同3篇
- 內(nèi)蒙古赤峰市元寶山區(qū)2024-2025學年高二數(shù)學下學期4月月考理試題含解析
- 2024年瓷磚無縫鋪貼技術(shù)裝修服務(wù)合同3篇
- 2024-2025年高中化學 專題3 第2單元 第4課時 糖類教學實錄 蘇教版必修2
- 柳州職業(yè)技術(shù)學院《提高石油采收率原理》2023-2024學年第一學期期末試卷
- 第3章 能量的轉(zhuǎn)化與守恒第5節(jié) 物體的內(nèi)能 第三課時教學實錄-2024-2025學年浙教版九年級上冊科學
- 2024年倉單質(zhì)押貸款條件3篇
- 12 玩也有學問 教學實錄-2024-2025學年道德與法治一年級上冊統(tǒng)編版
- 海上運輸協(xié)議書
- 江蘇省鹽城市大豐區(qū)部分學校2024-2025學年九年級上學期12月調(diào)研考試化學試題(含答案)
- 動畫制作員職業(yè)技能大賽考試題庫(濃縮500題)
- 房屋租賃合同
- 湖北省十一校2024-2025學年高三上學期第一次聯(lián)考物理試卷 含解析
- 12《富起來到強起來》第一課時(說課稿)統(tǒng)編版道德與法治五年級下冊
- 問題解決策略:歸納課件2024-2025學年北師大版數(shù)學七年級上冊
- 【初中道法】擁有積極的人生態(tài)度(課件)-2024-2025學年七年級道德與法治上冊(統(tǒng)編版2024)
- 年終總結(jié)安全類
- 銷售團隊員工轉(zhuǎn)正考核方案
- 傭金返還合同范例版
- 2023年民航湖北空管分局招聘考試真題
評論
0/150
提交評論