نمایش نتایج 1 تا 2 از 2

نام تاپیک: تبدیل مبناها

  1. #1

    Question تبدیل مبناها

    با سلام!
    اگه لطف کنید راهنمایی کنید خیلی ممنون میشم.
    سوال: برای تبدیل اعداد در مبناهای مختلف باید چه کار کرد؟!
    من: خوب فکر میکنم باید اول عدد رو به مبنای 10 ببریم و بعد خیلی راحت اون رو به مبنای مورد نظر ببریم!

    ؟ : حالا اگه بخواهیم این تبدیلات رو مستقیما انجام بدیم باید از چه الگوریتمی استفاده کنیم؟

    شما: ؟؟؟

  2. #2

    Type
    TBaseRange=2..32;
    Const
    sDigits='0123456789ABCDEFGHIJKLMNOPQRSTUV';
    Function IntToAnyBase(num:int64;Base:TBaseRange):string;
    var
    tmp1,tmp3:int64;
    str:string;
    begin
    str:='';
    tmp3:=num;
    repeat
    tmp1:=tmp3 mod Base;
    tmp3:=tmp3 div Base;
    str:=copy(sDigits,tmp1+1,1)+str;
    until not(tmp3<>0) ;
    Result:=str;
    end;

    Function AnyBaseToInt(num:string;Base:TBaseRange):int64;
    var
    sum:int64;i:longint;
    token:string;
    begin
    sum:=0;
    for i:=1 to length(num) do begin
    token:=uppercase(num[i]);
    sum:=Base*sum+(pos(token,sDigits)-1);
    end;
    result:=sum;
    end;

    با ترکیب این دو تابع می تونی هر مبنایی رو به هر مبنای دیگه تبدیل کنی.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •