본문 바로가기
델파이 프로그래밍 정보

진수변환

by 알 수 없는 사용자 2017. 4. 11.
728x90
반응형

 16진수 → 10진수


procedure TForm1.Button1Click(Sender: TObject);

begin

  Edit2.Text := IntToStr(StrToInt('$'+Edit1.text));

end;


■ 16진수 → 10진수


procedure TForm1.Button1Click(Sender: TObject);

begin

  Edit2.text := IntToHex(StrToInt(Edit1.Text),1); // 숫자는 자리수를 표시해준다.

end;


* 참조 : http://www.delmadang.com/community/bbs_view.asp?bbsNo=17&bbsCat=41&indx=366555&keyword1=%C1%F8%BC%F6%BA%AF%C8%AF&keyword2=


■ 10진수 → 2진수

procedure TForm1.Button1Click(Sender: TObject);

var

  temp_str : string;

  temp_int : Integer;

begin

  temp_int := StrToInt(Edit1.Text); // 문자를 숫자로 변환

  //

  repeat

    if Odd(temp_int) then // Odd뜻 : temp_int 가 홀수이면

    begin

      temp_str := '1' + temp_str; // 홀수이면 1을 추가

    end else

    begin

      temp_str := '0' + temp_str; // 짝수이면 0을 추가

    end;

    //

    temp_int := temp_int shr 1; // shr = Shift Right, 2진수를 1칸 쉬프트

  until temp_int = 0;

  //

  Edit2.Text := temp_str;

end;


* shr 란 무엇인가?

shr과 shl은 논리연산자입니다.. (혹은 비트연산자)
각각 shift right, shift left 를 말합니다.
흠..논리회로 같은거 공부하셨으면 비트 연산에 대해 아실텐데..
하튼 간단하게 말씀드리면..

011011 이라는 2진수가 있을때 shr 2 하면 000110 이렇게 오른쪽으로 두칸
쉬프트 됩니다.
011011 을 shl 2 하면 101100 이 되겠지요

x shl y 에서 x를 y bit만큼 왼쪽으로 bitwise shift합니다.
이것은 곱하기와 나누기 효과를 낼 수 있는데요..
shl의 경우 x 곱하기 2의 y승 이 됩니다.


예를 들어..
01101(10진수로 13)을 shl 1 했을때의 결과는
11010(10진수로 26)이 되므로 두배가 된 것을 알 수 있습니다.

// 참조

http://www.delmadang.com/community/bbs_view.asp?bbsNo=17&bbsCat=41&indx=274459&keyword1=%B5%B5%BF%CF&keyword2=



■ 2진수 → 10진수


procedure TForm1.Button1Click(Sender: TObject);

var

  temp_int : Integer;

  i : Integer;

begin

  temp_int := 0; // Integer 값은 처음에 0으로 초기화 해주어야 한다. 안하면 이상한 숫자가 생김

  //

  for i := 1 to Length(Edit1.Text) do // 1부터 Edit1.Text의 글자길이 까지 반복문

  begin

    if Edit1.Text[i] = '1' then // Edit1.Text 의 글자중에 1이면

    begin

      temp_int := (temp_int shl 1) + 1; // 1을 더한다

    end else

    begin

      temp_int := (temp_int shl 1);

    end;

  end;

  // 결과

  Edit2.Text := IntToStr(temp_int);

end;



728x90
반응형

'델파이 프로그래밍 정보' 카테고리의 다른 글

ASCII to HEX Delphi 모듈  (0) 2017.05.08
MOXA 보드 CP-118U RS-232설정하기  (0) 2017.04.27
RF 리더 프로그램  (0) 2017.04.11
User_Component 자료  (0) 2017.04.04
컴포넌트 기본 사용법 - 3강  (0) 2017.04.03

댓글