用bitarray類和BitVector32類實(shí)現(xiàn)

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊(cè)、網(wǎng)頁(yè)空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、綏中網(wǎng)站維護(hù)、網(wǎng)站推廣。
VB實(shí)現(xiàn)大致如下:
Imports?System.Collections.Specialized
...
Dim?bvData?as?BitVector32
Dim?sec1?As?BitVector32.Section?=?BitVector32.CreateSection(255)
Dim?sec2?As?BitVector32.Section?=?BitVector32.CreateSection(255,sec1)
Dim?sec3?As?BitVector32.Section?=?BitVector32.CreateSection(255,sec2)
Dim?sec4?As?BitVector32.Section?=?BitVector32.CreateSection(255,sec3)
Dim?Buf(4096)?as?Byte?'receive?byte?size?matched?with?DSP?send?data:?1024*4Byte
Dim?recCount?as?Integer
Dim?Data(1024)?as?long
....
For?recCount?=?0?To?1023
bvData(sec4)?=?buf(recByte*4)
bvData(sec3)?=?buf(recByte*4+1)
bvData(sec2)?=?buf(recByte*4+2)
bvData(sec1)?=?buf(recByte*4+3)
Data(recCount)?=?bvData.Data?'這樣數(shù)據(jù)肯定是-398
Next
....
見(jiàn)下面代碼,放置定時(shí)器,按鈕,標(biāo)簽各一個(gè)
Public?Class?Form1
Private?Sub?Timer1_Tick(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Timer1.Tick?'定時(shí)器
If?Label1.Right??Me.Width?Then
Label1.Left?+=?10'移動(dòng)距離
Else
Label1.Left?=?0
End?If
End?Sub
Private?Sub?Button1_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Button1.Click?'開(kāi)啟或者關(guān)閉定時(shí)器
Timer1.Interval?=?1000?'1秒
If?Timer1.Enabled?=?False?Then
Timer1.Start()?'開(kāi)定時(shí)器
Else
Timer1.Stop()?'關(guān)定時(shí)器
End?If
End?Sub
End?Class
對(duì)位模式執(zhí)行數(shù)學(xué)左移位。
result = pattern amount
各部分說(shuō)明
result
必選。整型數(shù)值。對(duì)該位模式進(jìn)行移位的結(jié)果。數(shù)據(jù)類型與 pattern 的數(shù)據(jù)類型相同。
pattern
必選。整型數(shù)值表達(dá)式。要進(jìn)行移位的位模式。數(shù)據(jù)類型必須為整型(SByte、Byte、Short、UShort、Integer、UInteger、Long 或 ULong)。
amount
必選。數(shù)值表達(dá)式。要將該位模式移位的位數(shù)。數(shù)據(jù)類型必須為 Integer 或擴(kuò)展到 Integer。
備注
數(shù)學(xué)移位不是循環(huán)的,即不會(huì)將在結(jié)果的一端移出的數(shù)位從另一端重新移入。在數(shù)學(xué)左移位運(yùn)算中,丟棄移出結(jié)果數(shù)據(jù)類型范圍的數(shù)位,而將右端空出的數(shù)位位置設(shè)置為零。
為防止移位的結(jié)果超出它所支持的位數(shù),Visual Basic 使用與 pattern 的數(shù)據(jù)類型相對(duì)應(yīng)的大小掩碼來(lái)屏蔽 amount 的值。可使用這些值的二進(jìn)制與運(yùn)算結(jié)果作為移位量。大小掩碼如下所示:
pattern數(shù)據(jù)類型 掩碼(十進(jìn)制)掩碼(十六進(jìn)制)
SByte, Byte 7 H00000007
Short, UShort 15 H0000000F
Integer, UInteger 31 H0000001F
Long, ULong 63 H0000003F
如果 amount 為零,則 result 的值與 pattern 的值相同。如果 amount 為負(fù)值,則將把它作為無(wú)符號(hào)的值,并使用相應(yīng)的大小掩碼進(jìn)行屏蔽。
數(shù)學(xué)移位絕不會(huì)產(chǎn)生溢出異常。
新聞標(biāo)題:vb.net的移位,vb上移下移
標(biāo)題來(lái)源:http://chinadenli.net/article42/dsgjeec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、電子商務(wù)、、商城網(wǎng)站、企業(yè)網(wǎng)站制作、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)