=波波日志 > Asp/VBScript > vbscript一个大数按位与的算法=
[转]vbscript一个大数按位与的算法
Dim a As String
Dim b As String
a = "4294967297"
b = "4294967296"
MsgBox a And b
提示溢出。
求一个可以处理大数按位与的算法。
----------------
Dim b As String
a = "4294967297"
b = "4294967296"
MsgBox a And b
提示溢出。
求一个可以处理大数按位与的算法。
----------------
+展开
-VBScript
Option Explicit
'完整的
Private Sub Command1_Click()
Debug.Print dec2hex("12379814471884843981")
Debug.Print hex2dec("ABCDEFABCDEFABCD")
Debug.Print hex2dec(myand(dec2hex("4294967297"), dec2hex("4294967296")))
End Sub
Private Function myand(ByVal hexa As String, ByVal hexb As String) As String
Dim m As Long
Dim n As Long
Dim a As Byte
Dim b As Byte
Dim c As Byte
Dim r As String
m = Len(hexa)
n = Len(hexb)
If m < n Then
hexa = String(n - m, "0") & hexa
m = n
End If
If n < m Then
hexb = String(m - n, "0") & hexb
n = m
End If
Dim l As Long
l = Len(hexa)
Dim i As Long
For i = 1 To l
a = Val("&h" & Mid(hexa, i, 1))
b = Val("&h" & Mid(hexb, i, 1))
c = a And b
r = r & Trim(Hex$(c))
Next i
myand = r
End Function
Private Function dec2hex(ByVal dec As String) As String
Dim n(1 To 100) As Byte
Dim c As Byte
Dim l As Long
Dim i As Long
Dim j As Long
l = Len(dec)
For i = 1 To l
c = Val(Mid(dec, i, 1))
For j = 100 To 2 Step -1
n(j) = n(j) * 10
Next j
n(100) = n(100) + c
For j = 100 To 2 Step -1
If n(j) > 15 Then
n(j - 1) = n(j - 1) + n(j) \ 16
n(j) = n(j) Mod 16
End If
Next j
Next i
Dim s As String
For i = 1 To 100
If n(i) > 0 Then
For j = i To 100
s = s & Trim(Hex$(n(j)))
Next j
dec2hex = s
Exit Function
End If
Next i
End Function
Private Function hex2dec(ByVal hexx As String) As String
Dim n(1 To 100) As Byte
Dim c As Byte
Dim l As Long
Dim i As Long
Dim j As Long
l = Len(hexx)
For i = 1 To l
c = Val("&h" & Mid(hexx, i, 1))
For j = 100 To 2 Step -1
n(j) = n(j) * 16
Next j
n(100) = n(100) + c
For j = 100 To 2 Step -1
If n(j) > 9 Then
n(j - 1) = n(j - 1) + n(j) \ 10
n(j) = n(j) Mod 10
End If
Next j
Next i
Dim s As String
For i = 1 To 100
If n(i) > 0 Then
For j = i To 100
s = s & Trim(CStr(n(j)))
Next j
hex2dec = s
Exit Function
End If
Next i
End Function
'完整的
Private Sub Command1_Click()
Debug.Print dec2hex("12379814471884843981")
Debug.Print hex2dec("ABCDEFABCDEFABCD")
Debug.Print hex2dec(myand(dec2hex("4294967297"), dec2hex("4294967296")))
End Sub
Private Function myand(ByVal hexa As String, ByVal hexb As String) As String
Dim m As Long
Dim n As Long
Dim a As Byte
Dim b As Byte
Dim c As Byte
Dim r As String
m = Len(hexa)
n = Len(hexb)
If m < n Then
hexa = String(n - m, "0") & hexa
m = n
End If
If n < m Then
hexb = String(m - n, "0") & hexb
n = m
End If
Dim l As Long
l = Len(hexa)
Dim i As Long
For i = 1 To l
a = Val("&h" & Mid(hexa, i, 1))
b = Val("&h" & Mid(hexb, i, 1))
c = a And b
r = r & Trim(Hex$(c))
Next i
myand = r
End Function
Private Function dec2hex(ByVal dec As String) As String
Dim n(1 To 100) As Byte
Dim c As Byte
Dim l As Long
Dim i As Long
Dim j As Long
l = Len(dec)
For i = 1 To l
c = Val(Mid(dec, i, 1))
For j = 100 To 2 Step -1
n(j) = n(j) * 10
Next j
n(100) = n(100) + c
For j = 100 To 2 Step -1
If n(j) > 15 Then
n(j - 1) = n(j - 1) + n(j) \ 16
n(j) = n(j) Mod 16
End If
Next j
Next i
Dim s As String
For i = 1 To 100
If n(i) > 0 Then
For j = i To 100
s = s & Trim(Hex$(n(j)))
Next j
dec2hex = s
Exit Function
End If
Next i
End Function
Private Function hex2dec(ByVal hexx As String) As String
Dim n(1 To 100) As Byte
Dim c As Byte
Dim l As Long
Dim i As Long
Dim j As Long
l = Len(hexx)
For i = 1 To l
c = Val("&h" & Mid(hexx, i, 1))
For j = 100 To 2 Step -1
n(j) = n(j) * 16
Next j
n(100) = n(100) + c
For j = 100 To 2 Step -1
If n(j) > 9 Then
n(j - 1) = n(j - 1) + n(j) \ 10
n(j) = n(j) Mod 10
End If
Next j
Next i
Dim s As String
For i = 1 To 100
If n(i) > 0 Then
For j = i To 100
s = s & Trim(CStr(n(j)))
Next j
hex2dec = s
Exit Function
End If
Next i
End Function
类别:Asp/VBScript 作者:转载 日期:2009-08-10 【评论:0】
暂时没有评论!
发表留言
百度赞助
同类热门博文
- ·IE里Cookie跨域不能..
- ·Cookie在IE浏览器跨..
- ·VBScript如何调用异..
- ·解决无法修改window..
- ·客户端VBScript和Ja..
- ·Asp.Net--C#字符串类..
- ·VB使用WebBrowser读..
- ·用批处理命令+VBScr..
博格Tag
- flash/flex/fcs/AIR(752)
- Asp.Net/C#/WCF(598)
- 操作系统及应用软件(376)
- JavaScript/Ajax(330)
- SQL及数据库(134)
- 黑客技术(115)
- Asp/VBScript(111)
- HTML/WML/CSS兼容/XML(102)
- PHP/apache/Perl(96)
- 网站排名及优化(96)
- 其他(75)
- showbo日志(66)
- lucene.net/分词技术(33)
- 计算机网络(26)
- 机械重工(26)
- C#设计模式(25)
- Google Maps开发(17)
- 日语学习(15)
- Canvas/VML/SVG(13)
- linux(11)
- 游戏开发(8)
- 正则表达式(5)
- Jsp/Java(4)
最新博文
- ·利用U盘进行软件加密..
- ·VB获取计算机硬件序..
- ·asp cookies方法
- ·Asp Cookie属性
- ·asp Response.Buffe..
- ·URL欺骗/钓鱼网站的..
- ·关闭危险端口防止病..
- ·asp遍历applicaton/..
随机博文
