重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

vb.net位左移,vb上移下移

vb.net 1

1左移10位,1后面加10个0

创新互联公司是一家集网站建设,永兴企业网站建设,永兴品牌网站建设,网站定制,永兴网站建设报价,网络营销,网络优化,永兴网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

结果就是:10000000000

五、按位运算符

注意不能在VB.Net中直接使用以下二进制数,使用时需转换为相应的十六或十进制数字。

1. 表示按位左移,空缺处补0。如:101101 2 结果为 110100

2. 表示按位右移,如:101101 2 结果为 001011

用VB语言怎么把数字左移?右移?

第一步,先把整形变量数(有正有负)转化为2进制数存放在一个Byte(0 to 1)中

Dim MyB(1) as byte

if N =0 then

Myb(0)= N \ 256 //高位

Myb(1)= N mod 256 //低位

else

tmp=N*(-1)

Myb(0)= tmp \256

Myb(1)= tmp mod 256

Myb(0)= Not(Myb(0) and H80) //将符号位取反

Myb(1)= Not(Myb(1)) +1

//以上两行是先求出正数N的二进制表示方法,然后把最高位置1(这样就是-N的原码了)

//然后把所有位都取反,末尾+1,这样就是-N的补码形式了,在计算机中负数是补码来存放的。

end if

转化好以后就是移位操作了,意味操作代码如下(假定你要移动N位)

For i=1 to N

SaveHi = Myb(0) '保存高位,是为了判断右移时是否向低位字节进1

'以下是右移 ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '

Myb(0) = Myb(0) \ 2 '右移不会溢出的

Myb(1)= Myb(1) \ 2

If ((SaveHi And H1) = H1) Then

Myb(1) = Myb(1) Or H80

End If

Next

如果是左移,也是一样:

For i=1 to N

SaveLo = Myb(1) '保存低位,是为了判断左移时是否向高位字节进1

'以下是右移 ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '

Myb(0) = (Myb(0) * 2) mod HFF '要取余,不然会溢出

Myb(1) = (Myb(1) * 2) mod HFF

If ((SaveLo And H80) = H1) Then

Myb(0) = Myb(0) Or H01 '高位进一

End If

Next

vb.net2005中符号“

对位模式执行数学左移位。

result = pattern amount

各部分说明

result

必选。整型数值。对该位模式进行移位的结果。数据类型与 pattern 的数据类型相同。

pattern

必选。整型数值表达式。要进行移位的位模式。数据类型必须为整型(SByte、Byte、Short、UShort、Integer、UInteger、Long 或 ULong)。

amount

必选。数值表达式。要将该位模式移位的位数。数据类型必须为 Integer 或扩展到 Integer。

备注

数学移位不是循环的,即不会将在结果的一端移出的数位从另一端重新移入。在数学左移位运算中,丢弃移出结果数据类型范围的数位,而将右端空出的数位位置设置为零。

为防止移位的结果超出它所支持的位数,Visual Basic 使用与 pattern 的数据类型相对应的大小掩码来屏蔽 amount 的值。可使用这些值的二进制与运算结果作为移位量。大小掩码如下所示:

pattern数据类型 掩码(十进制)掩码(十六进制)

SByte, Byte 7 H00000007

Short, UShort 15 H0000000F

Integer, UInteger 31 H0000001F

Long, ULong 63 H0000003F

如果 amount 为零,则 result 的值与 pattern 的值相同。如果 amount 为负值,则将把它作为无符号的值,并使用相应的大小掩码进行屏蔽。

数学移位绝不会产生溢出异常。


本文名称:vb.net位左移,vb上移下移
当前网址:http://cqcxhl.com/article/phegip.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP