国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

用VB進行移位操作

2019-11-18 17:34:39
字體:
來源:轉載
供稿:網友
VB沒有提供移位操作的指令和函數,只提供and(與)、or(或)、xor(異或)、eqv(同或)、not(非)等幾個運算符,而編程時有時需要對一個字節進行移位操作(如進行加密),怎么辦?其實只用and、or二個運算符即可搞掂。例如要將變量byte1的第八位置1(假設byte1的二進制值為01001101),則只需byte1or&h80(即01001101or10000000),如要將第八位置0,則只需byte1and&h7f。請看下面程序段是如何實現循
環左移的:

PublicFunctionbyteleft(byte1AsByte,nAsInteger)AsByte`將byte1左移n位
DimintemAsByte`臨時變量
Dimintem1AsByte`臨時變量
Dimx,yAsInteger
intem1=byte1
Forx=1Ton`移多少位就循環多少次
Fory=8To1Step-1`從第八位(左邊第一位)開始循環左移
SelectCasey
Case8
If(intem1And&H80)=&H80Then`如果臨時變量intem1的第八位是1,
intem=&H1`則將臨時變量intem置1,
Else
intem=&H0`反之置0
EndIf
Case7
If(intem1And&H40)=&H40Then`如果臨時變量intem1的第七位是1,
intem1=intem1Or&H80`則將其第八位置1(其它位不變),
Else
intem1=intem1And&H7F`反之將第八位置0(其它位不變)
EndIf
Case6
If(intem1And&H20)=&H20Then`操作與上面相同
intem1=intem1Or&H40
Else
intem1=intem1And&HBF
EndIf
Case5
If(intem1And&H10)=&H10Then
intem1=intem1Or&H20
Else
intem1=intem1And&HDF
EndIf
Case4
If(intem1And&H8)=&H8Then
intem1=intem1Or&H10
Else
intem1=intem1And&HEF
EndIf
Case3
If(intem1And&H4)=&H4Then
intem1=intem1Or&H8
Else
intem1=intem1And&HF7
EndIf
Case2
If(intem1And&H2)=&H2Then
intem1=intem1Or&H4
Else
intem1=intem1And&HFB
EndIf
Case1
If(intem1And&H1)=&H1Then
intem1=intem1Or&H2
Else
intem1=intem1And&HFD
EndIf
Ifintem=&H1Then`移完第一位后,如果intem是1(即第八位是1)
intem1=intem1Or&H1`則將intem1的第一位置1
Else
intem1=intem1And&HFE`反之置0
EndIf
EndSelect
Nexty
Nextx
byteleft=intem1`將intem1的值返回給函數名
EndFunction
參照此程序段,不難實現循環右移。
(此程序段在VB5上調試通過。)
->


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 桃江县| 筠连县| 阜新市| 冀州市| 五寨县| 高淳县| 射洪县| 上虞市| 景泰县| 德清县| 广安市| 渝北区| 石柱| 轮台县| 府谷县| 永善县| 平顶山市| 秭归县| 利川市| 罗田县| 宽甸| 驻马店市| 洛扎县| 曲沃县| 澄江县| 甘肃省| 永胜县| 布拖县| 郁南县| 苗栗县| 唐山市| 黔西| 错那县| 广东省| 鞍山市| 荃湾区| 吉水县| 南木林县| 酉阳| 寻甸| 榆林市|