C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[57882] Re:Re:10bit 그레이코드를 바이너리 코드로 변환하려고 합니다. 그런데...
감사 [] 1169 읽음    2009-08-01 09:27
하하 그렇네요...
감사합니다....

김진호.불사새 님이 쓰신 글 :
: Bit1~10은 왜 저렇게 쓰신건가요? 해당 변수에는 각각 비트 위치에 따른 값이 들어가 있는건가요?
: Bit 변수 하나 잡아서 하면 되는게 아닐까요...뭐 암튼....
:
: 안되는 가장 큰 이유는...
:
: for문을 잘못 쓰셨습니다.
:
: for (초기값 ; 조건 ; 증감) 이렇게죠.
:
: for(int i = 8; i--; i >= 0)
:
: 이것의 경우, 초기값 8 들어가고...조건 확인하면서 -1 되고... 증감쪽은 무의미.
: 결국 7부터 시작하다가 i--이 0이 될때 조건이 false가 되니 루프 끝.
:
: :           for(int i = 0; i++; i < 10) Binary[i] = 0;
: :           for(int i = 0; i++; i < 10) Angle[i]  = 0;
: 이건 타지도 않죠. i=0이고 조건에서 이미 i는 0이리 루프 끝.
: ++i였으면 그냥 비정상적으로 프로그램이 죽었겠죠. 1부터 시작해서 int범위 크기까지 한바퀴 돌아야 하니...
:
: 궁금이 님이 쓰신 글 :
: : 10bit 그레이코드를 바이너리 값으로 변환할려고 있는데... 뭐가 잘 안되네요....
: : 아래 변환공식이 틀렸나요.
: :
: :           Gray[0] = (Bit1  & 0x01) ? 1 : 0;
: :           Gray[1] = (Bit2  & 0x02) ? 1 : 0;
: :           Gray[2] = (Bit3  & 0x04) ? 1 : 0;
: :           Gray[3] = (Bit4  & 0x08) ? 1 : 0;
: :           Gray[4] = (Bit5  & 0x10) ? 1 : 0;
: :           Gray[5] = (Bit6  & 0x20) ? 1 : 0;
: :           Gray[6] = (Bit7  & 0x40) ? 1 : 0;
: :           Gray[7] = (Bit8  & 0x80) ? 1 : 0;
: :           Gray[8] = (Bit9  & 0x100) ? 1 : 0;
: :           Gray[9] = (Bit10 & 0x200) ? 1 : 0;
: :
: :           for(int i = 0; i++; i < 10) Binary[i] = 0;
: :           for(int i = 0; i++; i < 10) Angle[i]  = 0;
: :
: :           Binary[9] = Gray[9];
: :           for(int i = 8; i--; i >= 0) {
: :                Binary[i] = (Binary[i+1] == Gray[i]) ? 0 : 1; //exclusive OR
: :           }
: :
: :           Angle[9] = (Binary[9] == 1) ? 512 : 0;         
: :           Angle[8] = (Binary[8] == 1) ? 256 : 0;
: :           Angle[7] = (Binary[7] == 1) ? 128 : 0;
: :           Angle[6] = (Binary[6] == 1) ? 64  : 0;
: :           Angle[5] = (Binary[5] == 1) ? 32  : 0;
: :           Angle[4] = (Binary[4] == 1) ? 16  : 0;
: :           Angle[3] = (Binary[3] == 1) ? 8   : 0;
: :           Angle[2] = (Binary[2] == 1) ? 4   : 0;
: :           Angle[1] = (Binary[1] == 1) ? 2   : 0;
: :           Angle[0] = (Binary[0] == 1) ? 1   : 0;
: :
: :           total_angle = 0;
: :           for(int i = 0; i < 10; i++) {
: :                total_angle += Angle[i];
: :           }
: :
: :           Memo1->Lines->Add(AnsiString().sprintf("%.1f", total_angle));

+ -

관련 글 리스트
57860 10bit 그레이코드를 바이너리 코드로 변환하려고 합니다. 그런데... 궁금이 1820 2009/07/31
57861     Re:10bit 그레이코드를 바이너리 코드로 변환하려고 합니다. 그런데... 김진호.불사새 1782 2009/07/31
57882         Re:Re:10bit 그레이코드를 바이너리 코드로 변환하려고 합니다. 그런데... 감사 1169 2009/08/01
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.