請教多位元運算 |
|
kobemagic2001
一般會員 ![]() ![]() 發表:10 回覆:6 積分:3 註冊:2006-07-24 發送簡訊給我 |
想請教一些問題 最近 我在做 多位元的四則運算 想研究出更多位元...
突破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.
------
努力不懈 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |