C# 數(shù)字?jǐn)?shù)據(jù)類型間的轉(zhuǎn)換原理與實現(xiàn)-KC07010502-a04_第1頁
C# 數(shù)字?jǐn)?shù)據(jù)類型間的轉(zhuǎn)換原理與實現(xiàn)-KC07010502-a04_第2頁
C# 數(shù)字?jǐn)?shù)據(jù)類型間的轉(zhuǎn)換原理與實現(xiàn)-KC07010502-a04_第3頁
C# 數(shù)字?jǐn)?shù)據(jù)類型間的轉(zhuǎn)換原理與實現(xiàn)-KC07010502-a04_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、物聯(lián)網(wǎng)應(yīng)用技術(shù)專業(yè)教學(xué)資源庫文檔文檔來源院校開發(fā)文檔編號KC07010101-a22C# 數(shù)字?jǐn)?shù)據(jù)類型間的轉(zhuǎn)換原理與實現(xiàn)(微課腳本)無錫職業(yè)技術(shù)學(xué)院星期日, 一月 23, 2022C# 數(shù)字?jǐn)?shù)據(jù)類型間的轉(zhuǎn)換原理與實現(xiàn)序號臺詞1同學(xué)們,大家好。今天我們開始學(xué)習(xí)“學(xué)習(xí)模塊一 基于WSN的環(huán)境監(jiān)控系統(tǒng)設(shè)備編程與實施”,本堂課的內(nèi)容是“C# 數(shù)字?jǐn)?shù)據(jù)類型間的轉(zhuǎn)換原理與實現(xiàn)”。2數(shù)據(jù)類型間的轉(zhuǎn)換在串行通信開發(fā)中是一個基本的技能,在數(shù)據(jù)傳輸、數(shù)據(jù)解析中常常涉及到數(shù)據(jù)類型間的轉(zhuǎn)換,例如PC通過串行線路讀取溫濕度節(jié)點的信息過程中,首先溫濕度傳感器獲取當(dāng)前溫度是28.0,之后通過節(jié)點串口把28.0通過串行線路,

2、接收方接收到二進(jìn)制后,把接收到的二進(jìn)制還原成原始值,在此過程數(shù)據(jù)類型轉(zhuǎn)換就涉及到至少兩處:節(jié)點數(shù)據(jù)通過串口發(fā)送給PC時,需要把數(shù)字28對應(yīng)的數(shù)據(jù)類型轉(zhuǎn)換為二進(jìn)制;接收方就收到二進(jìn)制后,需要把二進(jìn)制還原成原始值。要了解數(shù)據(jù)轉(zhuǎn)換的過程,我們需要了解數(shù)字在計算機中如何表示,相互間如何轉(zhuǎn)換?3今天我們的任務(wù)主要包括以下四個方面:數(shù)字與數(shù)據(jù)類型、數(shù)據(jù)表示、轉(zhuǎn)換原理、轉(zhuǎn)換實現(xiàn)。4先來看一下數(shù)字與數(shù)據(jù)類型5人們在日常生活中使用的數(shù)字有兩大類:整數(shù)、小數(shù), 例如小明8歲了,8就是一個整數(shù),電表讀數(shù)為,是一個小數(shù);計算機使用應(yīng)用程序進(jìn)行信息記錄時,把人們使用的整數(shù)、小數(shù)進(jìn)行了概括、抽象,形成了計算機中相應(yīng)的數(shù)據(jù)

3、類型,人們使用整數(shù)對應(yīng)于計算機中的整型,小數(shù)對應(yīng)于浮點型,具體而言在C#語言中,整型包括int、short 、long等類型,浮點型包括float、double,所以在計算機存儲小明的年齡8時,應(yīng)明確其數(shù)據(jù)類型為int,記錄電表信息時應(yīng)明確其數(shù)據(jù)類型為double類型。6了解了數(shù)字與計算機中數(shù)據(jù)類型的對應(yīng)關(guān)系后,接下了解這些數(shù)據(jù)如何在計算機中表示,即數(shù)據(jù)的表示7計算機由電子元器件組件,其基本電路是與非門,即0和1,所以所有的數(shù)據(jù)在計算機內(nèi)容都是0和 1的二進(jìn)制表示,不同的數(shù)據(jù)類型在計算機中其占位及大小有所不同,例如在C#中int類型大小為32bits,占32位的存儲空間,long類型(長整型)

4、大小為64bits,占64位的存儲空間,float類型(單精度浮點型)大小為32bits,占32位的存儲空間,double類型(雙精度浮點型)大小為64bits,占64位的存儲空間;在此以數(shù)字28不同數(shù)據(jù)類型對應(yīng)的二進(jìn)制編碼為例,如表所示,十進(jìn)制28對應(yīng)十六進(jìn)制為0x1c;把28作為int類型時,數(shù)字形態(tài)為28,其對應(yīng)的十六進(jìn)制為0x00 0x00 0x00 0x1c,共32bits;把28作為double類型時,數(shù)字形態(tài)為28.00,其對應(yīng)的十六進(jìn)制為0x00 0x00 0x00 0x00 0x00 0x00 0x3c 0x40,共64bits;把28作為float類型時,數(shù)字形態(tài)為28.0

5、,其對應(yīng)的十六進(jìn)制為0x00 0x00 0xe0 0x41,共32bits;此處可以發(fā)現(xiàn)數(shù)值都是28,但是int、double、float三種數(shù)據(jù)類型的值都不一樣,這主要是因為整型和浮點型在計算機中的表示方式不一樣,整型采用的模2取余運算,而浮點采用的是IEEE754標(biāo)準(zhǔn),此處不做深入介紹,需要了解的同學(xué)可查閱相關(guān)材料。8了解數(shù)據(jù)的表示后,接下來介紹數(shù)據(jù)間的轉(zhuǎn)換原理9不同數(shù)據(jù)在計算機中存儲時其占位大小、表示方式各異,所以數(shù)據(jù)間轉(zhuǎn)換的核心就是匹配適應(yīng)目標(biāo)數(shù)據(jù)的大小和表示方式,例如int類型28轉(zhuǎn)換為double類型需要了解兩點:兩者占位大小不一樣,int為32bits, double為64bit

6、s;其次表示方式不一樣。10C#對數(shù)據(jù)類型間的轉(zhuǎn)換進(jìn)行概括,為開發(fā)者提供了BitConverter類和數(shù)據(jù)類實現(xiàn)了基本數(shù)據(jù)間的轉(zhuǎn)換,可以把數(shù)據(jù)類型的轉(zhuǎn)換分為兩大類:同種數(shù)據(jù)類型的轉(zhuǎn)換,不同數(shù)據(jù)類型的轉(zhuǎn)。同種數(shù)據(jù)類型間的轉(zhuǎn)換使用BitConverter類,該類的getBytes()函數(shù)可以獲取需轉(zhuǎn)換數(shù)據(jù)的二進(jìn)制數(shù)組,通過該類的toXXX()函數(shù)可以還原出二進(jìn)制數(shù)組對應(yīng)的原始數(shù)字,其中二進(jìn)制數(shù)組使用byte類型進(jìn)行存儲;不同數(shù)據(jù)類型間轉(zhuǎn)換使用目標(biāo)數(shù)據(jù)的parse函數(shù)轉(zhuǎn)換,注意的一點轉(zhuǎn)換提供給parse函數(shù)的相應(yīng)數(shù)據(jù)的字符串形式。11接下來使用Visual Studio 來演示數(shù)據(jù)轉(zhuǎn)換的實現(xiàn)12(視

7、頻)數(shù)據(jù)轉(zhuǎn)換對double、long及byte三種數(shù)據(jù)類型間轉(zhuǎn)換進(jìn)行演示,演示程序界面僅包括一個“轉(zhuǎn)換”按鈕,程序中定義了三種數(shù)據(jù)類型的四個變量,double類型的double_value,初始值為28.00,double_convert初始值為0.00;long類型的int_value,初始值為0,byte類型的b,初始值為空;程序主要驗證三種數(shù)據(jù)類型間的轉(zhuǎn)換:double與double的間接轉(zhuǎn)換、double與long的間接轉(zhuǎn)換、 double與long的直接轉(zhuǎn)換,其中間接轉(zhuǎn)換涉及double與byte的相互轉(zhuǎn)換;為了觀察變量值的變化給相應(yīng)代碼設(shè)置斷點;通過運行程序按F5鍵進(jìn)行單步執(zhí)行查看

8、程序中變量的值來了解C#中數(shù)據(jù)的轉(zhuǎn)換,double_value變量通過BitConverter類的GetBytes方法轉(zhuǎn)換為二進(jìn)制數(shù)組并存放在byte變量b中,double類型大小為64bits,轉(zhuǎn)換后b的長度為8bytes,大小相符,然后在通過BitConverter類的ToDouble方法還原并賦值給double類型double_convert變量,最終可觀察double_convert的值確是28.00;之后查看double與long的間接轉(zhuǎn)換,通過BitConverter類的ToInt64方法還原并賦值給long類型的int_value變量,此時查看其值為明顯與28不符,證明確實不同類型間不能通過二進(jìn)制間接轉(zhuǎn)換;按F5鍵繼續(xù)查看double與long的直接轉(zhuǎn)換,使用int.parse(double_value.toString()把double類型直接轉(zhuǎn)換為long類型并賦值給int_val

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論