VB.NET移位指令 vba位移函数

vb.net 11左移10位,1后面加10个0
结果就是:10000000000
五、按位运算符
注意不能在VB.Net中直接使用以下二进制数,使用时需转换为相应的十六或十进制数字 。
1.表示按位左移,空缺处补0 。如:1011012 结果为 110100
2.表示按位右移,如:1011012 结果为 001011
100分 急求在vb.net中怎样进行位操作用bitarray类和BitVector32类实现
VB实现大致如下:
Imports System.Collections.Specialized
...
Dim bvData as BitVector32
【VB.NET移位指令 vba位移函数】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 '这样数据肯定是-398
Next
....
vb.net 如何移动文件夹?Microsoft.VisualBasic.FileSystem.Rename(原文件夹完整路径名称,新的文件夹名称)
Microsoft.VisualBasic.FileSystem.Rename("D:\1", "D:\2\1")‘当路径不对时会把原文件夹剪切到“D:\2\”下面文件夹名称不变
Microsoft.VisualBasic.FileSystem.Rename("D:\1", "D:\2\2")")‘当路径不对时会把原文件夹剪切到“D:\2\”下面文件夹名称更改为 2
Microsoft.VisualBasic.FileSystem.Rename("D:\1", "D:\2")’当路径相同时只改文件夹名称 不移动文件
请问VB中怎么能向右循环一位VB程序中实现字节移位操作
在利用VB系统开发数据采集或工业控制软件VB.NET移位指令,或对文件进行低级操作时VB.NET移位指令,常需要对字节进行移位操作,但VB系统中没有提供字节移位操作VB.NET移位指令的指令和函数,只提供了And(与)、Or(或)、Xor(异或)、Equ(同或)、Not(非)等几个逻辑运算指令 。笔者在用VB系统开发工业控制软件的过程中 , 就遇到了这个问题,于是利用VB中已有的逻辑运算指令,模拟汇编语言的字节移位指令 , 编制了七个字节移位函数:逻辑左移、逻辑右移、算术右移、循环左移、循环右移、进位循环左移和进位循环右移 。
在汇编语言指令中 , 逻辑左移的功能相当于乘2, 逻辑右移的功能相当于除2,利用这个特性,在VB程序中用乘2和除2方法实现位的左移和右移,然后再用And(与)和Or(或)逻辑运算指令,判断移位过程中是否有进位发生,将进行标志置位 。
程序清单
CF是进位标志,采用Boolean类型逻辑变量 , 如果CF为True表示有进位,为False则表示无进位 。
Public CF As Boolean'进位标志
'1.逻辑左移
Public Function SHL(OPR As Byte, n As Integer) As Byte
Dim BD As Byte
Dim I As Integer
BD = OPR
For i = 1 To n - 1
BD = (BD And H7F) * 2 '将D7位屏蔽左移,防止字节溢出
Next i
CF = BD And H80 '判断D7位是否进位
SHL = (BD And H7F) * 2
End Function
'2.逻辑右移
Public Function SHR(OPR As Byte, n As Integer) As Byte
Dim BD As Byte
Dim I As Integer
BD = OPR
For i = 1 To n - 1
BD = BD \ 2 '右移
Next i
CF = BD And 1 '判断D0位是否进位
SHR = BD \ 2
End Function
'3.算术右移
Public Function SAR(OPR As Byte, n As Integer) As Byte
Dim BD As Byte
Dim I As Integer
Dim Fg1 As Byte
BD = OPR

推荐阅读