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
[22612] Re:CPort에서 hex값으로 Write 할수 있나요?
배현수 [] 1077 읽음    2002-11-14 01:49
저도 고수는 아니라 님이 원하는 답이 될 지는 모르겠습니다. ^^

얼마전에 제가 16진수 연산을 할 일이 있어서 사용한 방법입니다.

1. 우선 PORT에 라이트 할려면 모르긴 해도 8비트나 16비트 수치 여야 할 것입니다.
   단순히 수치를 16진수로 쓰기 위해서는 앞에 0x만 붙여주면 되죠

   ioport1 = 0x1a;       // 0001 1010 이 ioport1에 써지는 거죠..
   ioport1 = 26;         // 이렇게 해도 똑같습니다. 보이기만 다를뿐 실제로 컴퓨터에서
                            처리되는건 똑같으니까요.

   16비트일경우에는 0x012a 이런식으로...

그러나 위의 방법에는 치명적인 단점이 있습니다.

16진수를 써넣거나, 비트 연산은 가능한 반면 저장된 수를 다시 16진수로 보여주지
못한다는 거죠..

2. 이럴때는 (10진 숫자를 16진수로 읽고싶을때) c++에서 제공하는

  IntToHex(int value, int length);  // length길이의 16진수를 String 형으로 반환

함수를 사용해야 합니다.
예를 들어

  int a = 64;        // 0100 0000 = 0x40;
  String hex_a;

  hex_a = IntToHex(a, 2);        // hex_a 에는 "40"이 들어갑니다.
  hex_a = IntToHex(a, 4);        // hex_a 에는 "0040"이 들어갑니다.

이렇게 사용하면 되죠..

대답이 되었는지 모르겠네요..

좋은 하루 되세요..

PS. 글의 내용이 틀렸거나 의문점이 있으시면 주저 없이 지적해주세요..^^       



개구리 님이 쓰신 글 :
: plc하고 통신할려고 하니...Hex값으로 통신하라고 하는데...하는방법을 몰라서요,
:
: CPort에서 hex값으로 Write 할수 있나요?
:
: 할수 있는 방법좀 알려주세요.

+ -

관련 글 리스트
22610 CPort에서 hex값으로 Write 할수 있나요? 개구리 687 2002/11/13
31118     Re:CPort에서 hex값으로 Write 할수 있나요? 꼴.Free 766 2002/11/14
22612     Re:CPort에서 hex값으로 Write 할수 있나요? 배현수 1077 2002/11/14
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.