Q&A

  • 10 진수 => 60 진수로..혹은 반대로..
제목 그대로 입니다.

어떻게 해야 되요 ??

도와 주세요

1  COMMENTS
  • Profile
    남충희 2001.06.21 23:24
    조건없는 진수변환 프로그램입니다.

    여기서 Token만 변경하시면 될 것 같습니다.

    참조 바랍니다.





    unit Jin;



    interface



    uses

    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    StdCtrls;



    type

    TForm1 = class(TForm)

    Edit2: TEdit;

    GroupBox1: TGroupBox;

    ComboBox1: TComboBox;

    Edit1: TEdit;

    Button1: TButton;

    Button2: TButton;

    Button3: TButton;

    Button4: TButton;

    Label1: TLabel;

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure Button4Click(Sender: TObject);

    procedure Button3Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    Function GetOrgNumber : Int64;

    end;



    Const

    Token_16 : String = '0123456789ABCDEF';

    Token_10 : String = '0123456789';

    Token_8 : String = '01234567';

    Token_2 : String = '01';



    var

    Form1: TForm1;



    implementation



    {$R *.DFM}



    Function RadixToInt(St : String; Token : String) : Int64;

    Var

    aPos : Integer;

    a : Integer;

    begin

    st := UpperCase(st);

    Result := 0;

    for a := 1 to Length(st) do

    begin

    aPos := Pos(st[a],Token);

    if aPos > 0 then

    Result := Result * Length(Token) + aPos - 1

    else begin

    Result := 0;

    break;

    end;

    end;

    end;





    Function Radix(a : Int64; Token : String) : String;

    begin

    Result := '';

    While (a > 0) do

    begin

    Result := Token[a Mod (Length(Token)) + 1] + Result;

    a := a div Length(Token);

    end;

    if Result = '' then Result := '0';

    end;



    Function TForm1.GetOrgNumber : Int64;

    begin

    if ComboBox1.Text = '2진수' then result := RadixToInt(Edit1.Text,Token_2)

    else if ComboBox1.Text = '8진수' then result := RadixToInt(Edit1.Text,Token_8)

    else if ComboBox1.Text = '10진수' then result := RadixToInt(Edit1.Text,Token_10)

    else if ComboBox1.Text = '16진수' then result := RadixToInt(Edit1.Text,Token_16);

    end;



    procedure TForm1.Button1Click(Sender: TObject);

    begin

    Edit2.Text := Radix(GetOrgNumber,Token_2);

    end;



    procedure TForm1.Button2Click(Sender: TObject);

    begin

    Edit2.Text := Radix(GetOrgNumber,Token_8);

    end;



    procedure TForm1.Button4Click(Sender: TObject);

    begin

    Edit2.Text := Radix(GetOrgNumber,Token_10);

    end;



    procedure TForm1.Button3Click(Sender: TObject);

    begin

    Edit2.Text := Radix(GetOrgNumber,Token_16);

    end;



    end.







    ================================= dfm ===============================

    object Form1: TForm1

    Left = 192

    Top = 107

    Width = 297

    Height = 213

    Caption = '진수변환'

    Color = clBtnFace

    Font.Charset = ANSI_CHARSET

    Font.Color = clWindowText

    Font.Height = -12

    Font.Name = '굴림체'

    Font.Style = []

    OldCreateOrder = False

    PixelsPerInch = 96

    TextHeight = 12

    object Label1: TLabel

    Left = 16

    Top = 160

    Width = 24

    Height = 12

    Caption = '결과'

    end

    object Edit2: TEdit

    Left = 48

    Top = 152

    Width = 233

    Height = 20

    ImeName = '한국어(한글) (MS-IME98)'

    TabOrder = 0

    Text = 'Edit2'

    end

    object GroupBox1: TGroupBox

    Left = 16

    Top = 16

    Width = 265

    Height = 129

    Caption = '변환값'

    TabOrder = 1

    object ComboBox1: TComboBox

    Left = 184

    Top = 21

    Width = 69

    Height = 20

    ImeName = '한국어(한글) (MS-IME98)'

    ItemHeight = 12

    TabOrder = 0

    Text = '10진수'

    Items.Strings = (

    '2진수'

    '8진수'

    '10진수'

    '16진수')

    end

    object Edit1: TEdit

    Left = 28

    Top = 21

    Width = 149

    Height = 20

    ImeName = '한국어(한글) (MS-IME98)'

    TabOrder = 1

    end

    object Button1: TButton

    Left = 96

    Top = 56

    Width = 75

    Height = 25

    Caption = '2진수 ▼'

    TabOrder = 2

    OnClick = Button1Click

    end

    object Button2: TButton

    Left = 176

    Top = 56

    Width = 75

    Height = 25

    Caption = '8진수 ▼'

    TabOrder = 3

    OnClick = Button2Click

    end

    object Button3: TButton

    Left = 176

    Top = 88

    Width = 75

    Height = 25

    Caption = '16진수 ▼'

    TabOrder = 4

    OnClick = Button3Click

    end

    object Button4: TButton

    Left = 96

    Top = 88

    Width = 75

    Height = 25

    Caption = '10진수 ▼'

    TabOrder = 5

    OnClick = Button4Click

    end

    end

    end







    한반도 wrote:

    > 제목 그대로 입니다.

    > 어떻게 해야 되요 ??

    > 도와 주세요