線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2016
推到 Plurk!
推到 Facebook!

請教多位元運算

 
kobemagic2001
一般會員


發表:10
回覆:6
積分:3
註冊:2006-07-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-11-24 22:45:15 IP:61.225.xxx.xxx 訂閱
想請教一些問題 最近 我在做 多位元的四則運算 想研究出更多位元...
突破255~宣告上 就不用string
但 寫出來的程式 雖然可以計算多位元 但 一遇到 負號算出來的結果 是不對的
以下是我的程式碼
type
TForm1 = class(TForm)
Button3: TButton;
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
Tmydatarecord = record
mydata:string;
name : String;
a : array [0..100] of byte;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function OPAdd(var s:string;id,value:integer):integer;
var ss,sv:string;

begin
Result:=0;
if id<=0 then begin
sv:=inttostr(value);
s:=sv s;
Result:=length(sv);
end
else begin
ss:=intTostr(ord(s[id])-48 value);
if length(ss) > 1 then begin
s[id]:=ss[2];
Result:=OPAdd(s, id-1, ord(ss[1])-48);
end
else
s[id]:=ss[1];
end;
end;

function Infinitmul(s1,s2:string):string;
var i,j,n1,n2,n:integer;
begin
n1:=length(s1);
n2:=length(s2);
if n2 > n1 then
Result:=InfinitMul(s2,s1)
else begin
n:=n1;
Result:=StringofChar('0',n1);
for i:=1 to n2 do
for j:=n1 downto 1 do
n:=n OPAdd(Result,n-n1-n2 i j,(ord(s2[i])-48) * (ord(s1[j])-48));
end;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
Label1.caption:=InfinitMul(edit1.text,edit2.text);
end;
end.
------
努力不懈
系統時間:2024-07-02 3:37:06
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!