Q&A

  • [질문] 2진수변환에 대해
안녕하세요 ㅎ;;
질문이있습니다. 에디트창에 10진수값를 입력하면 2진수로 변환되게 만들었는데,
이것을 15줄이하로 더 줄일수있을지 궁금합니다.
도와주세요;;;

procedure TForm1.Button1Click(Sender: TObject);
var
    E : array[1..31] of integer;
    A,B,C,D : integer;

begin
    D := strToint(Edit1.text);
    C := 1;
    Edit1.text := '';
    repeat
         A := D div 2;
         B := D mod 2;
       if B = 0 then
         begin
         E[C] := 0;
         C := C + 1;
         D := A;
         end
        else
         begin
         E[C] := 1;
         C := C + 1;
         D := A;
         end;
    until
         D < 2;
         E[C] := 1;
         repeat
         Edit1.text := (Edit1.text + inttostr(E[C]));
         C := C -1;
         until
         C = 0;
         end;
     end.
6  COMMENTS
  • Profile
    홍성락 2010.05.06 23:04
    2진수로 만들때 정석으로 계산하는것도 있지만 논리적으로 한비트씩 이동해서 shr비트연산으로 나눈 효과를 가져옵니다.그리고 홀수인지 짝수인지를 구분하여(Odd함수)나머지를 알수있습니다. 검색해보시면 여러 소스가 있습니다.본체만 10줄...

    procedure TForm1.Button1Click(Sender: TObject);
    var
    Value : Integer;
    StrBin: string;
    begin
    StrBin := '';
    Value := strToint(Edit1.text);
    repeat
    if Odd(Value) then
    StrBin := '1' + StrBin
    else
    StrBin := '0' + StrBin;
    Value := Value shr 1;
    until Value = 0;
    Edit1.text := StrBin;
    end;
  • Profile
    장성호 2010.05.08 02:56
    저도 한번 만들어 봤습니다.


    function IntToBinStr2( v: Integer): String;
    var
    p: PChar;
    s: String;
    begin
    SetLength(s,32);
    p:=PChar(s)+32;
    repeat
    Dec(p);
    if (v and $01)>0 then
    p^ := '1'
    else
    p^ := '0';

    v:= v shr 1;
    until v=0 ;
    Result:=String(p);
    end;


    String + String이 내부적으로 메모리 재할당이 반복되므로..
    위와같이 하면 조금더 빠르지 않을까 싶네요


    추신
    어셈에 대해 잘 모르지만 .
    제코드에 비트 연산보다
    홍성락님코드처럼 Odd함수를 쓰는것이 더 좋을것 같습니다.

    if Odd(Value) then

    test bl,$01
    jz +$10

    인데..

    if (v and $01)>0 then 구문은
    test ebx, $00000001
    jle +$08

    이렇게 나오네요

    그럼..
  • Profile
    최용일 2010.05.08 03:15
    지금 델파이가 없어서 확인이 불가능한데요... HexToBin이던가 이진수로 바꾸어주는 함수가 있습니다.
  • Profile
    쥰샥 2010.05.08 03:46
    델파이시작한지 얼마안되었는데 조금씩 알아갈수록 매력적임을 느낍니다
    홍성락님, 장성호님, 최용일님 답변 감사하고 앞으로도 잘부탁드립니다 ㅎ
  • Profile
    장성호 2010.05.08 03:46
    HexToBin은 문자열 'FF' 를 $FF로 바꿔주는 함수입니다.
    2진 문자열 '1011...' 같은 식의 문자열을 integer로 변경해주는 함수는 vcl에 없는것으로 알고있습니다.
  • Profile
    구창민 2010.05.12 02:54
    function IntToBin(const Value: Cardinal; Digits: Integer = 0): string;
    var
     i, d: Integer;
    begin
     for d := 1 to 32 do
       if (1 shl d) > Value then
         break;
     if Digits > d then d := Digits;
     SetLength(Result, d);
     for i := 0 to d-1 do
       if (1 shl i) and Value = 0 then
         Result[d-i] := '0'
       else
         Result[d-i] := '1';
    end;
    • 정소영
    • 2010.05.10 20:13
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2010.05.13 01:40
      체험판 설치하고 환경설정에서 Library패스에 체험판의 dcu파일들이 있는 폴더를 추가하세요. 쓸만한 기...
    • 초보임당
      2010.05.14 00:15
      조인된 자료를 수정하실려면 일단 ClientDataSet 을 쓰세요... 델파이에서 제공되는 DataBase Connect...
    • 백록화
      2010.05.10 20:11
      OLE DB 로 엑셀파일을 제어할려면...엑셀이 설치되어 있지 않으면 안될껍니다. COM을 기반으로 한것이라....
    • 다마리
    • 2010.05.09 10:08
    • 8 COMMENTS
    • /
    • 0 LIKES
    • 이종탁
      2010.05.09 20:37
      델파이 7이 가장 안정적이고 사용층도 두텁습니다. 따라서 7버전을 지원하는 라이브러리도 많을테고요. ...
    • 다마리
      2010.05.10 05:54
      어려운 답변이지만 답변 감사드립니다 ^^;; 그 델파이 7 세컨드 에디션인가... 제 하드에 하나있길래 설...
    • 백록화
      2010.05.10 06:49
      델파이7 세컨드 에디션 이란게...포터블 용으로 재패키징 된거 그거 말씀하시는거 아닌가요? 용량도 줄이...
    • 다마리
      2010.05.10 07:01
      아... 그렇군요.... 보아하니까 컴포넌트를 설치해야하는거같은데... 여간 어려움이 많네요 ㅎㅎ 기초 화...
    • 김병국
      2010.05.13 02:12
      델파이를 첨 접하시는 거라면 .. 기왕이면 최신버전으로 하는게 낫을거 같습니다....^^
    • 다마리
      2010.05.13 05:58
      넵 답변감사합니다 ^^;;
    • 화담선생
      2010.05.13 19:33
      저도 IDE 때문에 7을 선호하는 편입니다. 큰 모니터를 사용할때는 그리 문제가 되지 않지만, 노트북이나...
    • • • •
    • 곽영배
    • 2010.05.08 04:59
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2010.05.12 02:58
      이 코드는 계속 해서 실행하실 필요가 없는 코드입니다. 폼이 생성될때 한번만 실행해 주시면 됩니다..
    • 이재현
    • 2010.05.07 09:38
    • 6 COMMENTS
    • /
    • 0 LIKES
    • 이규하
      2010.05.07 14:40
      C, C++ 을 하실줄 아시면, 코드 자체는 읽기가 수월 하십니다. Q1. 저는 데이터 베이스 연동 하는 프...
    • 장성호
      2010.05.07 18:07
      A1. 델파이로 못만드는게 뭐가 있을까요? 국내 컴퓨터 사용자중에 델파이로 만든 프로그램이 안깔...
    • 백록화
      2010.05.07 18:35
      Turbo 제품군의 익스플로러 가 무료로 사용할수 있었지만은 현재로써는 신규 라이센스 발급이 중단되졌습...
    • 이재현
      2010.05.08 00:59
      친절한 답변 감사합니다.
    • 이정욱
      2010.05.08 12:02
      Device Driver 델파이로 가능합니다. ^^ 리눅스도 카일릭스를 이용하여 개발할 수 있습니다. ^^
    • 화담선생
      2010.05.13 19:46
      iPhone도 지원한다는 말이 있던데요. 허나 아직은 미정이고, 이와 관련된 말들도 많다는......
    • _blueSky_
    • 2010.05.07 06:44
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2010.05.07 15:30
      일반적으로 동영상은 Overlay라고 불리우는 별도의 화면에 표시가 됩니다. 우리가 프로그래밍해서 화면에...
    • mook
    • 2010.05.06 19:48
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김지호
      2010.05.06 20:07
      그냥 String, Integer 로 주시고 Properties.ValueChecked, Properties.ValueUnChecked, Properties.Val...
    • 쥰샥
    • 2010.05.06 19:18
    • 6 COMMENTS
    • /
    • 0 LIKES
    • 홍성락
      2010.05.06 23:04
      2진수로 만들때 정석으로 계산하는것도 있지만 논리적으로 한비트씩 이동해서 shr비트연산으로 나눈 효과...
    • 장성호
      2010.05.08 02:56
      저도 한번 만들어 봤습니다. function IntToBinStr2( v: Integer): String; var p: PChar; s...
    • 최용일
      2010.05.08 03:15
      지금 델파이가 없어서 확인이 불가능한데요... HexToBin이던가 이진수로 바꾸어주는 함수가 있습니다.
    • 쥰샥
      2010.05.08 03:46
      델파이시작한지 얼마안되었는데 조금씩 알아갈수록 매력적임을 느낍니다 홍성락님, 장성호님, 최용일님 ...
    • 장성호
      2010.05.08 03:46
      HexToBin은 문자열 'FF' 를 $FF로 바꿔주는 함수입니다. 2진 문자열 '1011...' 같은 식의 문자열을 i...
    • 구창민
      2010.05.12 02:54
      function IntToBin(const Value: Cardinal; Digits: Integer = 0):&...
    • 이승규
    • 2010.05.05 17:47
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 델초보
      2010.05.06 17:40
      (FindComponent(Self.ActiveMDIChild.Name) as TForm).Un_Search; 와 같이 하게 되면 activeMdiChildFor...
    • 이승규
      2010.05.07 00:25
      해봤는뎅~ Un_Search 가 없다는데요 ㅠ.ㅠ;
    • 최은규
    • 2010.05.05 03:35
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 인생무상
      2010.05.05 17:22
      에러 메시지를 보여주시면 더 도움이 됐을텐데요...
    • ez.J
      2010.05.06 06:53
      폼파일 에러으ㅏ 종류로는 1. 깨졌을때 2. 텍스트형 폼파일일때 (스트림형 폼파일도 있습니다-하위버전...
    • ez.J
      2010.05.06 06:57
      에구...오타가 ㅎ ㅎ ㅎ 퇴근길에 스마트폰으로....양해를...^^
    • 최은규
      2010.05.06 20:37
      조언 감사드립니다.... 그럼 일단 에러메세지를 확인하는 것이 제일 좋겠네요... --; 그나저나 저도 스...
    • ez.J
      2010.05.07 06:20
      ;;; 앞서가긴요... 전 티옴냐인데...작년11월에 구입했는데 아직 제대로 못쓰고 있습니다 ㅠㅠ 어플 2...
    • 권낙철
    • 2010.05.04 23:05
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2010.05.05 07:14
      베풀기를 요청하기 전에 검색을 먼저해보시길...
    • 최용일
      2010.05.04 19:47
      Project Group에 프로젝트 추가해서 쓰세요. Project Manager창에서 Project Group을 저장하고 여러 프로...
    • 나종민
      2010.05.04 19:53
      답변 고맙습니다. ^^ 제가 아마 설명을 잘못 드린건지 아니면 답변을 잘 이해 못했을수도 있는데요. ...
    • 황용문
      2010.05.04 20:20
      델파이 프로그램을 여러개 띄우실수 있는지 물어 보는거라면 가능 합니다. 윗 분처럼 프로젝트 그룹을...
    • 나종민
      2010.05.04 21:10
      황용문님 각각의 프로젝트를 띄울 수 있다면 어떻게 하면 되나요? 제가 말씀드린것은 현재 프로젝...
    • 나종민
      2010.05.04 21:38
      음...제가 질문을 잘 못 올렸는지는 모르겠지만 여긴 답변들이 참... 그러네요... 답변 1. 가능합니다...
    • 라벤더
      2010.05.05 01:34
      아무래도.. 델파이 프로젝트 파일이 실행 중일 때에 새로운 프로젝트 파일을 띄우는 것을 물어보시는 것...
    • 나종민
      2010.05.05 02:00
      라벤더님 감사합니다. 델파이에 따로 존재하는 기능이나 환결설정이 아니었군요. 더하나만 여쭤봐...
    • • • •
    • 양주현
    • 2010.05.04 18:54
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이용벽
      2010.05.04 22:24
      이렇게 한번 해보세요. var XL : variant; ............................. XL := CreateO...
    • 양주현
      2010.05.04 23:13
      정말 감사합니다.조금만 다르게 생각해보면 방법이 생기는 것을 초보라 응용이 쉽지 않네요. 여튼 도움...
    • 이현우
    • 2010.05.03 22:36
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 고흥식
      2010.05.04 07:52
      Delphi 2007이하 char* 이면 pchar로, Delphi 2009이상 char* => pansichar 로 해보세요
    • 이현우
      2010.05.07 01:45
      감사합니다... 이런거가 있는줄 몰랐네요~~ ^_^
    • ez.J
    • 2010.05.03 22:16
    • 6 COMMENTS
    • /
    • 0 LIKES
    • 이강석
      2010.05.03 22:24
      설마...select name from member_tbl; 이건 아니겠죠??? -_-;;
    • ez.J
      2010.05.03 22:28
      이강석님 답변 감사합니다 ^^;; 헌데...저의 질문 요지는 데이터가 아닌 필드명을 추출하는겁니다요 ^^;;...
    • ez.J
      2010.05.03 22:32
      아 -.-;; 추가로 활발한 sql 국내사이트 아시면 공유좀 부탁드려두 될까욤? ^^;; 어려우시면 괜찮아요 ^^ㅋ
    • 남광진
      2010.05.03 22:34
      SELECT COLUMN_NAME FROM information_schema.COLUMNS WHERE TABLE_NAME = '테이블이름' 하면 필드이...
    • ez.J
      2010.05.03 22:51
      남광진님 정말 감사드립니다 ^^;; db고수분이시군요 ^^;; 전 어제 종일;; 머리 쌓메고 있었는데 =ㅅ=;; s...
    • 델초보
      2010.05.04 17:58
      오라클 클럽에 가셔서 참조 해보심이....
    • 최용일
      2010.05.01 09:48
      Clipboard로 검색해보세요. Ctrl+C가 눌리면 클립보드로 TPanel의 Caption을 넣으시고, Ctrl+V가 눌리면...