Dim s1, s3, s5, s7, p As Integer
Private Sub Command1_Click() '原文到译文
word = Text1.Text
changeword = jiami(word)
Text2.Text = changeword
Text4.Text = s1
Text6.Text = s3
Text7.Text = s5
Text8.Text = s7
Text3.Text = p
End SubPrivate Sub Command2_Click() '译文到原文
changeword = Text2.Text
word = jiemi(changeword)
Text1.Text = Chr(word)
End SubPublic Function jiami(a) '加密函数,最主要是这个
asc2 = Asc(a)
p = Int(100 + 900 * Rnd())
s1 = Int(10 * Rnd())
s4 = Int(10 * Rnd())
s7 = Int(10 * Rnd())
s6 = Int(100 + 100 * Rnd())
Do
If Not (p < s6 And s6 < s4 * p And (s6 Mod p) ^ 3 < s4 ^ 3 And s4 ^ 3 < s1 ^ 3 And s4 ^ 3 < s7 ^ 3 And s7 ^ 3 < p) Then
p = Int(100 + 900 * Rnd())
s1 = Int(10 * Rnd())
s4 = Int(10 * Rnd())
s7 = Int(10 * Rnd())
s6 = Int(100 + 900 * Rnd())
Else
Exit Do
End If
Loop
Print Str(s6) + " " + Str(s4)
s5 = s4 * p + s6
s3 = s4 * p + s5
s4 = 0
s6 = 0
w = Int(100 + 900 * Rnd)
r = Int(100 + 900 * Rnd)
jiami = (s3 - s5) ^ 3 * w + asc2 * s5 + r * (s3 - s5)
End Function
Public Function jiemi(b) '解密函数
s3 = Text6.Text
s5 = Text7.Text
p = Text3.Text
jiemi = (b Mod p) / ((2 * s5 - s3) Mod p)
End Function
就是上面代码的最后一个函数的最后一句老是出现溢出,怎么回事
给我看看好不好
问了好几个人了
都解决不了
Private Sub Command1_Click() '原文到译文
word = Text1.Text
changeword = jiami(word)
Text2.Text = changeword
Text4.Text = s1
Text6.Text = s3
Text7.Text = s5
Text8.Text = s7
Text3.Text = p
End SubPrivate Sub Command2_Click() '译文到原文
changeword = Text2.Text
word = jiemi(changeword)
Text1.Text = Chr(word)
End SubPublic Function jiami(a) '加密函数,最主要是这个
asc2 = Asc(a)
p = Int(100 + 900 * Rnd())
s1 = Int(10 * Rnd())
s4 = Int(10 * Rnd())
s7 = Int(10 * Rnd())
s6 = Int(100 + 100 * Rnd())
Do
If Not (p < s6 And s6 < s4 * p And (s6 Mod p) ^ 3 < s4 ^ 3 And s4 ^ 3 < s1 ^ 3 And s4 ^ 3 < s7 ^ 3 And s7 ^ 3 < p) Then
p = Int(100 + 900 * Rnd())
s1 = Int(10 * Rnd())
s4 = Int(10 * Rnd())
s7 = Int(10 * Rnd())
s6 = Int(100 + 900 * Rnd())
Else
Exit Do
End If
Loop
Print Str(s6) + " " + Str(s4)
s5 = s4 * p + s6
s3 = s4 * p + s5
s4 = 0
s6 = 0
w = Int(100 + 900 * Rnd)
r = Int(100 + 900 * Rnd)
jiami = (s3 - s5) ^ 3 * w + asc2 * s5 + r * (s3 - s5)
End Function
Public Function jiemi(b) '解密函数
s3 = Text6.Text
s5 = Text7.Text
p = Text3.Text
jiemi = (b Mod p) / ((2 * s5 - s3) Mod p)
End Function
就是上面代码的最后一个函数的最后一句老是出现溢出,怎么回事
给我看看好不好
问了好几个人了
都解决不了
ByVal FileNumber As Integer, _
ByVal ParamArray Output() As Object _
)
FileOpen(1, "c:\trash.txt", OpenMode.Output)
Print(1, Str(s6) + " " + Str(s4))
FileClose(1)
还是不怎么懂你写的
可不可以说清楚点
麻烦了
不过我用你的代码调试没有出现异常(除了那个Print参数不对,可能是版本导致)
在出异常之前,你把那些变量的值输出来看看都是什么
s3 = Text6.Text
s5 = Text7.Text
p = Text3.Text
jiemi = (b Mod p) / ((2 * s5 - s3) Mod p)
End Function 函数定义也没返回类型,看得真累,不懂,OVER
谢谢楼上的几位了 你们说的我以后会注意的
我想知道下 如果不声明变量类型
会出现什么严重后果啊
对了 特别是感谢clear_zero(清晰)
我按你的改了下 确实成功了
我可以知道下为什么要这样改吗还有最后一个很重要的问题 我这几天刚开始进驻CSDN 听别人说的结贴 还要给分的
是怎么回事 怎么结贴呢
然后分别检查,发现(b Mod p) 这里错了。出错原因应该是去余这个函数实际上是把结果分为商和余数,由于b这个数字太大了,所以商部分太大了出现溢出。然后想着如何既决就好了关于揭帖的问题,你看到点击管理,自然就知道了
:)