1)b=(amod2)&ba=a\2loopb=a&bto2=bendfunctionfunctionto10(var1)'二进制转十进制a=var1b=len(a)c=0dowhile(len(a)>1)d=left(a,1)a=right(a,len(a)-1)c=c+d*(2^" />
文档库 最新最全的文档下载
当前位置:文档库 › ASP中用 VBScript 实现位运算的定义函数

ASP中用 VBScript 实现位运算的定义函数

ASP中用VBScript 实现位运算的定义函数<%

function to2(var1)

'十进制转二进制

a=var1

b=""

do while (a>1)

b=(a mod 2)&b

a=a\2

loop

b=a&b

to2=b

end function

function to10(var1)

'二进制转十进制

a=var1

b=len(a)

c=0

do while (len(a)>1)

d=left(a,1)

a=right(a,len(a)-1)

c=c+d*(2^len(a))

loop

c=c+a

to10=c

end function

function setbit(var1,bit1,var2)

'设置二进制位值

'var1为十进制数,长整型(-2^63 2^63)

'bit1为需要设置的二进制位,右边开始为第1位,最高63位

'var2为需要设置的值,0或1

a=var1

b=bit1

c=var2

d=to2(a)

if b>len(d) then

tmp=var2

if b-len(d)>1 then

tmp=tmp&string(b-len(d)-1,"0")

end if

setbit=to10(d)

else

if b=1 then

d=left(d,len(d)-1)&c

setbit=to10(d)

elseif b=len(d) then

d=c&right(d,len(d)-1)

setbit=to10(d)

else

d=left(d,len(d)-b)&c&right(d,b-1)

setbit=to10(d)

end if

end if

end function

function getbit(var1,bit1)

'获取指定二进制数位上的值0或1 右边为第1位,左边为高位a=var1

b=bit1

c=to2(a)

if b>len(c) then

getbit="0"

else

getbit=mid(c,len(c)-b+1,1)

end if

end function

function bitor(var1,var2)

'二进制位或运算

a=to2(var1)

b=to2(var2)

c=len(a)

if c

d=""

for k=1 to c

tmp1=getbit(var1,k)

tmp2=getbit(var2,k)

if tmp1="0" and tmp2="0" then

d="0"&d

else

d="1"&d

end if

next

end function

function bitand(var1,var2)

'二进制位与运算

a=to2(var1)

b=to2(var2)

c=len(a)

if c

d=""

for k=1 to c

tmp1=getbit(var1,k)

tmp2=getbit(var2,k)

if tmp1="1" and tmp2="1" then

d="1"&d

else

d="0"&d

end if

next

bitand=to10(d)

end function

function bitxor(var1,var2)

'二进制异或运算

a=to2(var1)

b=to2(var2)

c=len(a)

if c

d=""

for k=1 to c

tmp1=getbit(var1,k)

tmp2=getbit(var2,k)

if tmp1=tmp2 then

d="0"&d

else

d="1"&d

end if

next

bitxor=to10(d)

end function

response.write "75="&to2(75)&"
" response.write "69="&to2(69)&"
"

response.write "69 xor 75 = "&bitxor(69,75)&"
" response.write "69 or 75 = "&bitor(69,75)&"
" response.write "69 and 75 = "&bitand(69,75)&"
" %>

相关文档
相关文档 最新文档