ImageVerifierCode 换一换
格式:PPT , 页数:31 ,大小:197KB ,
资源ID:1199118      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-1199118.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(整数型态.ppt)为本站会员(kuailexingkong)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

整数型态.ppt

1、第2章:資料型態與變數,基本資料型態,C#語言中的基本資料型態可分為兩種:實際變數型態(Value Types)-直接將資料內容儲存在記憶體中.參考變數型態(Reference Types)-記憶體中儲存其他變數的位址.,在C#中無論是何種型態的資料變數,都是由object這個類別所衍生而出。,實際變數型態(Value types),實際變數型態,其儲存於記憶體中的內容主要是資料實體本身,它可分為兩類,分別是結構型態(Struct)與列舉型態(Enumeration),這兩種型態底下又分別可表示不同的資料變數,型態的分類從屬關係如下:,簡單型態(C#內定的常用資料型態),數值型態,布林型態,整

2、數型態(Integral Type),浮點數型態(Floating Point Type),小數型態(Decimal Type),整數型態,C#語言提供了九種整數型態,分別為sbyte、byte、short、ushort、int、uint、long、ulong、char,這些型態都能表示整數資料,其差別在於可表示整數資料的大小以及是否有正負號。,int, uint:在C#中是以32位元(4位元組)來代表一個整數,因此其可表現的數值大小為232 = 4294967296 如果只想表現正整數(uint),那可儲存的數值範圍為 0 4294967295如果要表現正負兩邊的整數(int),則其可表現的

3、大小需要減半(正負各半) - 2147483648 +2147483647,整數型態,2. byte, sbyte:這兩種型態也可以表現整數,在C#中是以8位元(1位元組)來表現,因此其可表現的數值大小為28 = 256 如果只想表現正整數(byte),那可儲存的數值範圍為 0 255如果要表現正負兩邊的整數(sbyte),則其可表現的大小需要減半(正負各半) -128 +127,3. short, ushort:這兩種型態在C#中是以16位元(2位元組)來儲存,因此其可表現的數值大小為216 = 65536 ushort可表現正整數,其可儲存的數值範圍為 0 65535short可表現正負整

4、數,其可儲存的數值範圍為 -32768 +32767,整數型態,4. long, ulong:這兩種型態是以64位元(8位元組)來表示整數資料,因此其可表現的數值大小為264 = 18446744073709551616 ulong可表現正整數,可儲存的數值範圍為 0 18446744073709551615long可表現正負整數,其範圍為 -9223372036854775808 9223372036854775807,5. char:此型態的基本規格與ushort相同,用16位元(2位元組)來表示正整數資料,但特別的是,char型態可表示的數值範圍065535,每一個數值都相對應到Unic

5、ode字元集裡面的一個字元。,Unicode是一種文字編碼的標準,它將各種不同的文字以唯一的編碼方式來儲存,因此當各種不同的文字同時出現時,就不會發生編碼互相衝突的情況。,浮點數型態,C#語言中有兩種型態可以存放浮點數,也就是數學上的“實數”,分別為單精倍浮點數(float)與雙精倍浮點數(double),其存放格式是依照IEEE協會所制定的特殊規格來存放。,float:所佔長度為32位元,其可表現的數值範圍約為1.5*10(-45) 3.4*10(38),可表示的精確位數為7位,2. double:所佔長度為64位元,其可表現的數值範圍約為5.0*10(-324) 1.7*10(308),可

6、表示的精確位數為1516位,使用浮點數時,有幾點需要特別注意:1.+0.0 與 -0.0:在大部分的運算情況下,+0與-0是視為相同的,但是有些運 算符號可能會將這兩種數值視為相異。2.正無限大與負無限大:要產生無限大的數,最簡單的方式就是將某個數除以0,1.0/0.0可得到正無限大,-1.0/0.0可得到負無限大的數。3.Not-a-Number:不是一個正常的數,簡寫為NaN,會產生這類的數值主要是由於不合理的數值運算所造成,如0/0等等。,小數型態,小數型態(decimal)可儲存更為精確的浮點數,適合使用在財務計算,或是精確的科學計算中,其使用128位元(16位元組)來儲存資料,其資料

7、的表示範圍為: 1.0*10(-28) 7.9*10(28) ,精確位數為2829位。,float,double,decimal都可以用來表示浮點數,但是在程式中,要怎麼表示這些浮點數的差異呢?通常在小數後面加上f即代表此數爲float型態的浮點數,加上d表示double型態的浮點數,加上m表示decimal型態的浮點數。,布林數型態(bool)與空型態(void),布林數型態(bool)可以用來表示數學邏輯中的代表著真(true),或假(false),換句話說,布林數只能用來儲存true或false這兩種狀態,這與之前我們所介紹的變數型態,可以用來儲存大量且多變化的型態不相同。,在C/C+語

8、言中,可以將整數1轉換成bool型態的true,整數0可以轉換成bool型態的false,但在C#語言中已經不能直接做轉換,這點請特別注意!,而空型態(void),顧名思義,表示“空”的資料型態,此型態大多用在函數的回傳型態上,一般的變數並不常使用到這種類型的資料型態。,3-1-2 參考變數型態(Reference types),參考變數型態主要是儲存其他資料的位址,也就是說,它可以指向程式中的另一個資料變數,無論是其他的實體變數,或是其他的參考變數,因此,在程式中,可以允許有多個參考變數同時指向同一個變數,並對此變數作修改。,string 類別型態,string類別也是直接繼承於object

9、類別,可以用來儲存以Unicode字元所組成的字串,string類別本身提供了許許多多的功能,讓程式設計師能方便的對字串做處理,在此將只對string類別做簡要說明,詳細講解請參考第六章:陣列與字串。,範例1:string a = “String1”;string b = “String2”;string c = a;此時,字串c內容等於“String1”b = c;這時候,字串b的內容等於“String1”,範例2:string a = “Hello World ”;string b = “C# programming”;string c = a + b;執行結束後,字串c的內容等於“Hel

10、lo World C# programming”,3-1-3 各資料型態規格整理,變數與常數,變數與常數是儲存資料的基本單位,也是資料處理的基本單位,上節所介紹的資料型態,都需要經過實體化,成為變數,程式才能作處理,本節將對變數與常數的觀念做詳細解說。,3-2-1 變數的意義變數,顧名思義,就是其所儲存的資料,在程式的執行過程中有可能會被改變,舉例來說,每天天氣的平均溫度、每天股市的漲跌點數、全球的人口總數等等,由於會受到許多因素的影響,因此每天都會有巨量或微量的變動,因此,上面所提到的幾個數值都可視爲“變數”,在程式執行的過程中,記憶體會分配一個適當空間來存放變數。,變數的命名規則,在程式中

11、,每個變數都需要有一個相對應的名稱來代表,C#語言對於變數名稱的使用有幾種限制:1.變數名稱必須由底下三種字元構成:英文字母、阿拉伯數字、_ (底線符號) 但是變數的第一個字元不可以是阿拉伯數字! 範例1:下面皆為合法的變數名稱 Point MONTH K7 _p3範例2:以下皆為不合法的變數名稱3C 變數名稱不可以由阿拉伯數字開頭C# 變數名稱不可以有#符號m,n 變數名稱不可以有,符號float 變數名稱不可與C#關鍵字相同此外,在C#語言中,大小寫的英文字母分別代表不同的意義,因此下列三個字串都代表不同的變數名稱:MI2 Mi2 mi22.當我們為變數命名時,變數名稱不可以直接與C#中的

12、保留字(關鍵字)相 同,因爲這些關鍵字通常已經具有特別的意義。程式設計師不可以直接以這些關鍵字當變數名稱,除非,在變數前面加上符號,那麼這些關鍵字就能當作正常變數使用。,變數的宣告,範例2:假設人類的年齡範圍由1100多歲,如果在程式中需要紀錄某個人的年齡,請找出最適當的資料型態來儲存此資料。int age; - int需要佔用32位元的空間,可表示的數目遠大於1100,因此使用此資料型態並不經濟short age; -short佔用16位元的空間,可表示-3276832767,也遠大於1100的範圍,因此使用此型態也不經濟sbyte age;-sbyte佔用8位元的空間,可表示-128127

13、,接近1100的範圍,但由於年齡不可能為負數,因此使用此資料型態勢必浪費一半的空間byte age;- byte佔用8位元的空間,可表示0255,接近1100的範圍,而且年齡不可能為負數,因此使用此資料型態並不會浪費一半的空間,此型態為最佳的選擇,變數的宣告,當我們想在程式中使用變數時,一定要先經過宣告的動作,如此編譯器才會在記憶體中保留此變數的空間,宣告變數的方法如下:資料型態 變數名稱1, 變數名稱2, 變數名稱3;,範例:宣告變數p,q,r爲整數變數,變數c,d爲倍精確浮點數,變數h為小數資料型態,變數k為object資料型態:int p,q,r;double c,d;decimal h

14、;object k;,此外,我們曾經提到,如果變數的名稱剛好與C#的內定保留字相同,則在宣告變數時,需要在變數前面加上符號:int break; 命名不可與關鍵字相同int float; 雖然float為關鍵字,但由於前面加上符號,因此這是合法的變數名稱,變數的宣告與設定初始值,在宣告變數的同時,我們可以直接設定變數的初始值,其方法隨著變數型態的不同而不同,先來看實際變數型態的設定方法: 資料型態變數名稱 = 初始值;設定方法相當簡單,就是直接在變數後面加上設定的初始值。範例:將a宣告成整數變數,其值設定爲911,將b宣告成字元變數,其值設定 爲字母x,將c宣告成字串變數,其值設定爲“bin”

15、。inta= 911;char b=x;string c=“bin”;,C#語言也允許”動態資料宣告”,這意味著我們在宣告變數時,可用運算式來設定變數的初始值。範例:變數r爲圓的半徑,將變數Length宣告爲圓的周長。float Length=2*3.1415926*r;此外,在C#語言中,宣告出變數後,如果沒有經過初始化的動作,則對於某些資料型態(參考3-2-6:預設內定值),編譯器會自動將變數初始化,並產生警告訊息,建議程式設計師作修改,而對於其他的資料型態,如果設計師沒有作初始化的工作,編譯器也無內定的程序作初始設定,則編譯器將會產出錯誤,並強制程式設計師作修改。,變數的宣告與設定初始值

16、,參考變數型態的初始方法如下:1.資料型態變數名稱 = new 資料型態(初始值);2.資料型態變數名稱 = 初始變數;由於參考變數型態的資料,是儲存其他資料的位置,因此,當一個參考變數剛被宣告出來時,本身並無指向任何的資料變數,它指向的是一個NULL(空位址),當我們現在想要實際使用這個參考變數時(即設定初始值),當然需要讓它指向一個合法的空間,參考變數才能正常使用,而這個合法的空間可以讓編譯器馬上在記憶體中取得,或是指向另一個變數的位址。在第一個設定方法中,我們利用new這個指令,請編譯器為這個參考變數,在記憶體中找一塊空間,好讓參考變數能指向合法的空間。範例:將參考資料型態string變

17、數Author1設定為”KavinChen”。string Author1 = “KavinChen”;範例:宣告一個object型態的變數A,並指向記憶體中的一個合法的空間。object b = new object( );,常數,常數(constant),其意義與變數相反,在程式執行的過程中,不會(也不允許)被更改的數,也就是“不隨任何條件改變的數值”,在日常生活中,這類的數有:圓周率、自然指數e、光在真空中的速度、地表的重力加速度等等,在C#語言中,數字、字元、字串都是常數,例如:A = 28;/把整數常數28,設給變數AB = p;/把字元常數p,設給變數BC = “World”;/把

18、字串常數World,設給變數C,在程式中往往會有許多需要重復使用的常數,當程式變得很大很複雜時,我們很難保證這些常數不會被其他敍述所改變,因此C#語言提供了常數修飾字const,經過const修飾過後的變數,在程式執行的過程中,其數值將不能更改,使用格式如下:const資料型態 變數名稱 = 數值;範例1:宣告G等於9.8,並且在程式執行過程中不可以被更改:const float G = 9.8f;範例2:宣告Author2字串變數等於“DannisLin”,並且在程式執行過程中不 可以被更改:const string Author2=“DannisLin”;,變數預設內定值,當宣告出變數後,

19、需要將變數初始化,才可以再接下來的程式碼中使用,如果程式設計師沒有對變數作初始動作,則C#語言有其內定的初始值,列表如下:,如果要讓變數宣告出來時,就設定為內定的初始值,需要利用下面這種變數宣告方式:資料型態 變數名稱 = new 資料型態( );範例:宣告一個整數int變數a,其初始值為內定初始值int a = new int( );,運算式、運算子、運算元,程式中所有的運算動作都要透過運算式的組合來達成;運算式(Expression)是由運算元(Operand)與運算子(Operator)所組成,運算元可以是一個、或多個(常數)、(變數)、(函數)或其他運算式的組合,而運算元需要用運算子來

20、規範運算的方式。在C#語言中,運算式本身都有一個數值結果,這個結果是經過運算式中的運算元與運算符號作用後所産生。,設定運算子,=設定運算子(Assignment Operator) :把=右邊運算式的值設定給左邊的變數,使用格式如下:變數 = 運算式 ;=符號的左邊一定需要一個單一變數,不能是常數、函數、或是複合運算式,因此底下都是錯誤的使用範例:87 = 23+45;/左邊不可以是常數g(3) = 456;/左邊不可以是函數b-a = c;/左邊不可以是複合的運算式【註】=符號雖然與數學上的等於符號相同,但其意義並不相同,=符號是設定的意思,而在C#語言中,等於的符號爲= =,特別是用在條件

21、判斷的指令上,請勿搞混。算數運算子( Arithmetic Operator ):一般最常用的運算符號就是(+)加、(-)減、(*)乘、(/)除、(%)取餘數比較運算子(Comparison Operator):大於、小於、等於、不等於、大於等於、小於等於 , = , , = , A = A + 5;則我們還可以用另一種方式來表示:a op= b; = A += 5;,特殊運算式,A.遞增遞減運算:C#語言提供兩個特別的運算符號,分別是遞增符號+,與遞減符號- -;遞增符號會將運算元加一,遞減符號會將運算元減一,隨著符號位於運算子的位置,又可分為:前置運算(prefix):在使用這個運算元之前

22、,先進行加一或 減一的動作。後置運算(postfix):在使用這個運算元之後,再進行加一或 減一的動作。範例:假設i=2,j=3,有一敘述句如下,則運算後,a,b,i,j的值為何?a = 1+ (i+);b = 1+ (j-);結果:a=1+2=3、b=1+3=4、i=2+1=3、j=3-1=2,特殊運算子,B.條件運算:條件運算子?可以取代簡單的if-eles判別指令,在同一個運算式中,如果有超過一個以上的運算元與運算子時,如:a = b * x + c,我們就需要考慮到各個運算子的運算優先順序,在我們的經驗中,通常都是以先做乘除(b*x),後做加減(b*x)+c)的方式來處理運算,也就是說

23、,在我們的認定中,*與/的計算優先順序就比+與-來得高。此外,計算的執行方向也是一個需要考慮的問題,在這個例子中,運算式不論是由左而右,或由右而左,對於結果都不會造成影響,這是由於*與+這兩個運算子並沒有左右之分,如果現在運算式變成這樣:a = b / x + c,如果計算順序由左而右,則結果為a = (b/x)+c,如果計算順序由右而左,則結果將變成a =c+(x/b),由此可知,/與-會有左右之分;由於不同的計算優先敘述會造成計算上的差異,因此在程式語言中,我們需要明確的定義各運算子的左右結合性,而程式設計師需要依循這個計算規則來設計程式,否則運算式很容易因為這種問題,而發生計算錯誤。 有

24、關C#語言中,所有的運算子計算優先順序,以及各運算子的結合性, 請翻閱3-393-40頁中的表格。,運算符號結合優先順序,型別的轉換 (Type cast),在程式之中,若同一個算式中包含不同型別的資料,則編譯器會對資料做最適當的轉換。,範例1:假設整數a=10,單精確浮點數b=15.5f,單 精確浮點數c=10.0f,有一敘述句如下: c = a + b; (float) (int) (float)當a加上b後,結果為浮點數,c也為浮點數,因此a+b的結果可以精確的傳給c。運算完後,c=25.5f、a=10、b=15.5f,範例2:假設整數a=10,單精確浮點數b=15.5f,整 數c=10

25、,有一敘述句如下: c = a + b; (int) (int) (float) (float) a加上b後,結果為浮點數,但因為c為整數,沒有足夠的空間來儲存浮點數,因此a+b的結果必須捨棄小數部份才可以傳回給c。運算完後,c=25、a=10、b=15.5,強制型別轉換,C#語言可以強制設定變數的資料型別,只要在變數前面加個括號,並在括號中指明你希望強制轉換的資料型態,則不論該資料原本是何種型態,都會被強制轉換成我們希望的型態:(強制轉換型態) 資料變數;,範例:假設a=10,b=4皆為整數,c為浮點數,則 c = a / b; 因為a與b都是整數,因此10/4=2.5,取整數為2,因此c=2 如果加上強制型別轉換: c = (float)a / (float)b; 雖然a與b都是整數,但在運算之前,會先被轉換成浮點數,因此10.0/4.0=2.5,所以c=2.5,

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报