vb中的一个小程序求教

来源:百度知道 编辑:UC知道 时间:2024/05/28 11:15:05
对一个十六进制的字符串,比如:7ea2 900f e129 741a
我要将其表示成:7*16的15次方+14*16的14次方+ .....然后进行求模运算。
求算法!
求模运算是指7ea2 900f e129 741a这个十六进制数对一个整数(不是大整数)进行求模
首先必须把该十六进制数转换成十进制数,也就是上面乘以16的N次方的原因,接下来想做的是把这每一个加数都对一整数求模,最后再把得到的数最后求一次模

Option Explicit

Const Z = 10000

Private Sub Command1_Click()
Dim S As String, A As String, B As String
Dim i As Long, j As Long, k As Long, t As Long
Dim te As Long, td As Long, tg As Long
Dim C As Long
Dim D() As Long, E() As Long, F() As Long, G() As Long

S = "7ea2900fe129741a" '原16进制数,要求第一位不为0
C = 859 '求模的除数,为了简化结构,要求C<Z,如果要求C为任一Long,则求余时会更复杂一些
k = Len(S)
ReDim F(1 To k) '用来存16进制数的各位

For i = 1 To k
j = Asc(Mid(S, i, 1))
If j >= Asc("0") And j <= Asc("9") Then '想不起来这些常数了,只好用函数求了
t = j - Asc("0")
ElseIf j >= Asc("a") And j <= Asc("f") Then
t = j - Asc("a") + 10
ElseIf j >= Asc("A") And j <= Asc("F") Then
t = j - Asc("A") + 1