| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2561 人关注过本帖
标题:如何用vb实现两个128位数的加减法计算器?
只看楼主 加入收藏
fansiming1
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-8-30
收藏
 问题点数:0 回复次数:7 
如何用vb实现两个128位数的加减法计算器?
好像是用数组实现吧.....不太会~有没有高人解答一下~多谢
搜索更多相关主题的帖子: 计算器 加减法 位数 
2008-08-30 19:21
三断笛
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:31
帖 子:1621
专家分:1617
注 册:2007-5-24
收藏
得分:0 
是啊 两个字符串 模拟手工加减法
2008-08-30 20:38
fansiming1
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-8-30
收藏
得分:0 
回复 2# 三断笛 的帖子
两个字符串?能说详细些吗?谢谢
2008-08-30 20:43
我是菜鸟哦
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:921
专家分:209
注 册:2007-5-4
收藏
得分:0 
字符串不就是数组吗?(C里是,VB类似)

偶是菜鸟鸟偶惧WHO?!!!!
2008-08-30 20:54
multiple1902
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:4881
专家分:671
注 册:2007-2-9
收藏
得分:0 
就是数组嘛

抱歉不是VB语言的。
程序代码:
    高精度加法
function hiPlus(s1,s2:string):string;
var a,b:array[1..100] of byte;
    k,l1,l2,i,j:integer;tmpstr:string;
begin
  l1:=length(s1);l2:=length(s2); 
  fillchar(a,sizeof(a),0);
  fillchar(b,sizeof(b),0);
  if l1>l2 then j:=l1 else j:=l2;
  k:=0;
  for i:=l1 downto 1 do
    begin
      inc(k);
      a[k]:=ord(s1[i])-48;
    end;
  k:=0;
  for i:=l2 downto 1 do
    begin
      inc(k);
      b[k]:=ord(s2[i])-48;
    end;
  for i:=1 to j do
    begin [
      a[i]:=a[i]+b[i];
      if a[i]>=10 then
        begin
          a[i]:=a[i]-10;
          a[i+1]:=a[i+1]+1;
        end; ]
    end;
  if a[j+1]=0 then j:=j-1;
  tmpstr:='';
  for i:=j+1 downto 1 do
    tmpstr:=tmpstr+chr(a[i]+48);
  hiPlus:=tmpstr
end;  
    高精度减法
if a[i]<b[i] then
  begin
    a[i+1]:=a[i+1]-1;
    a[i]:=a[i]+10;
  end;
a[i]:=a[i]-b[i];
2008-08-30 21:47
fansiming1
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-8-30
收藏
得分:0 
啊......谁能用vb写一下呢....看不太懂....谢谢!
2008-08-30 21:52
multiple1902
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:4881
专家分:671
注 册:2007-2-9
收藏
得分:0 
var 是定义变量,类似于dim。
冒号前面是变量名,后面是数据类型。
array说明是数组,of后面是基类型。

fillchar是数组初始化,全部赋为0.
length是取字符串长度,相当于Len。
冒号等于是赋值,想当于=的赋值。
for i:=i1 downto 1 do 相当于 For i=i1 To 1 Step -1
for的主体是for后面的一条语句。
认为begin和对应的end之间是一条复合语句,即一条语句。

inc(k)相当于k=k+1;
ord是取ASCII码,相当于Asc函数。

上面的函数是高精度加法的,把中括号的部分换成下面的程序段就是减法的。
2008-08-31 10:34
multiple1902
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:4881
专家分:671
注 册:2007-2-9
收藏
得分:0 
如果会Delphi的,看这段程序应该不难。

高精度计算是一种算法,用什么语言描述无关紧要,重要的是算法的思想。
2008-08-31 10:35
快速回复:如何用vb实现两个128位数的加减法计算器?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016336 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved