對位模式執(zhí)行數(shù)學左移位。
創(chuàng)新互聯(lián)公司服務項目包括內丘網站建設、內丘網站制作、內丘網頁制作以及內丘網絡營銷策劃等。多年來,我們專注于互聯(lián)網行業(yè),利用自身積累的技術優(yōu)勢、行業(yè)經驗、深度合作伙伴關系等,向廣大中小型企業(yè)、政府機構等提供互聯(lián)網行業(yè)的解決方案,內丘網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到內丘省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!
result = pattern amount
各部分說明
result
必選。整型數(shù)值。對該位模式進行移位的結果。數(shù)據類型與 pattern 的數(shù)據類型相同。
pattern
必選。整型數(shù)值表達式。要進行移位的位模式。數(shù)據類型必須為整型(SByte、Byte、Short、UShort、Integer、UInteger、Long 或 ULong)。
amount
必選。數(shù)值表達式。要將該位模式移位的位數(shù)。數(shù)據類型必須為 Integer 或擴展到 Integer。
備注
數(shù)學移位不是循環(huán)的,即不會將在結果的一端移出的數(shù)位從另一端重新移入。在數(shù)學左移位運算中,丟棄移出結果數(shù)據類型范圍的數(shù)位,而將右端空出的數(shù)位位置設置為零。
為防止移位的結果超出它所支持的位數(shù),Visual Basic 使用與 pattern 的數(shù)據類型相對應的大小掩碼來屏蔽 amount 的值??墒褂眠@些值的二進制與運算結果作為移位量。大小掩碼如下所示:
pattern數(shù)據類型 掩碼(十進制)掩碼(十六進制)
SByte, Byte 7 H00000007
Short, UShort 15 H0000000F
Integer, UInteger 31 H0000001F
Long, ULong 63 H0000003F
如果 amount 為零,則 result 的值與 pattern 的值相同。如果 amount 為負值,則將把它作為無符號的值,并使用相應的大小掩碼進行屏蔽。
數(shù)學移位絕不會產生溢出異常。
用bitarray類和BitVector32類實現(xiàn)
VB實現(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ù)據肯定是-398
Next
....
一種方法是模擬移動鼠標移動,一種是獲取窗口里的控件直接輸入
見下面代碼,放置定時器,按鈕,標簽各一個
Public?Class?Form1
Private?Sub?Timer1_Tick(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Timer1.Tick?'定時器
If?Label1.Right??Me.Width?Then
Label1.Left?+=?10'移動距離
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?'開啟或者關閉定時器
Timer1.Interval?=?1000?'1秒
If?Timer1.Enabled?=?False?Then
Timer1.Start()?'開定時器
Else
Timer1.Stop()?'關定時器
End?If
End?Sub
End?Class