用了个苯办法:(text1.text中为随机20位数,text2.text中为8-20位数,text3.text中为正确的所需的20位数)
mylen = Len(Format(Val(Text1.Text) + Val(Mid(Text2.Text, 1, 20)), "#")) - 14Text3.Text = Mid(Mid(Format(Val(Text1.Text) + Val(Mid(Text2.Text, 1, 20)), "#"), 1, 14) & _
Right(Format(Val(Right(Text1.Text, mylen)) + Val(Right(Text2.Text, mylen))), mylen), 1, 20)
哪位有好的办法??
mylen = Len(Format(Val(Text1.Text) + Val(Mid(Text2.Text, 1, 20)), "#")) - 14Text3.Text = Mid(Mid(Format(Val(Text1.Text) + Val(Mid(Text2.Text, 1, 20)), "#"), 1, 14) & _
Right(Format(Val(Right(Text1.Text, mylen)) + Val(Right(Text2.Text, mylen))), mylen), 1, 20)
哪位有好的办法??
解决方案 »
- 有没有前辈知道“DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, TableName,
- 关于Call WriteProcessMemory()该怎么使用?
- 怎样知道一个JPG文件是合法文件呢?100分相送!谢谢
- 如何列出窗体中的控件?
- vb怎么读取Nic的Mac地址
- 我想做一个电影服务器,怎么能动态接收并显示电影?
- 怎么样在RICHTEXTBOX中实现超链接(在线等候)......
- 求助:如何用VB读取Scanning的条形码??
- 通过popup menu打开模态窗体,然后再想在新窗体中popup menu 就不行了,不知道是什么原因。
- 怎样在一个窗体(visul basic)定义一个子程序, 在另一个窗体上调用?
- 如何做成像vb里的查找替换窗口一样???
- 怎样用SQL语句获得Access2000数据库中其中某个表的每个字段名或字段名列表?
则
如果a1+a2无进位: c=a1+b1,c=0;
如果a1+a2有进位: c=a1+b1-10000000000,n=1;(将a3的第一位的“1”去掉)
d=a2+b2;
则a+b=(d+n)*1000000000+c
可以这样:将每个20位数拆成2个10位数,a1,a2;b1,b2(a2=a mod 1000000000,a1=a div 1000000000,b2=b mod 1000000000,b1=b div 1000000000)
则
如果a1+a2无进位: c=a1+b1,n=0;
如果a1+a2有进位: c=a1+b1-10000000000,n=1;(将c的第一位的“1”去掉)
d=a2+b2;
则a+b=(d+n)*1000000000+n
不过FORMAT函数只准确到15位,所以后面的算法需另外进行。
更简单的办法我就搞不清了。
其实,我们大家可以想想。
在计算机的内部,二个八位二进制的数相加的过程:
1.串行相加,低四位先加,若有进位,将进位标志寄存器置1,否则置0;高四位相加时要再加上进位标志寄存器置的值。
2.并行相加,低四位、高四位同时运算,但要用到182等芯片来产生对高四位的进位。
思路大致如此。
format(CDec("45887755116608565042")+CDec("34859638993584317003"),"#")="80747394110192882045"
我是为朋友设计的“边锋”www.gameabc.com密码的解密、破译小程序,自己也不知有啥用!若需要请留EMAIL,我发个EXE(绝对绿色程序,VB编的)。
thanks!
我的email;[email protected]
多谢了!
hwmys(合适软件),你看到了吗?