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
[72981] Re:hex string 문자로 변환질문
Intotheblue [makerjh] 4021 읽음    2015-09-10 12:33
int data = 4999992 를 16 진수로 보면 0x4C4B38  이 됩니다.

아래 글을 보면 232 통신을 하시는것 같은데..
대부분 232 통신에서는 수신 데이터를 문자열로 처리하고 int 형으로 처리하진 않습니다.
님이 헤매는 이유는 수신 데이터를 int 형으로 바꿔서..
10진수로 보니 4999992 으로 나와서 이걸 변형하겠다고 하는거구요.

다른 변형과정없이..
int 형 4999992  를 그대로 232 에 써버려도 상대편에서는 LK8 이 수신됩니다.

가장 간단한 처리는..
수신 데이터를 ansistring 으로 받아서..

char a1 = a[1] // 4c
char a2 = a[2] // 4b
char a3 = a[3] // 38

이런식으로 접근하는게 쉽습니다.

ascii code 4c ='L' 이 되는거구요.

아래 간단한 코드 첨부하니 참고 바랍니다.


    int data = 4999992;

    char d1 = (data & 0xFF000000) >> 24;    // 0
    char d2 = (data & 0x00FF0000) >> 16;   // 4c
    char d3 = (data & 0x0000FF00) >> 8 ;       // 4b
    char d4 = (data & 0x000000FF);               // 38


    int data2 = StrToInt("0x4C") << 16 | StrToInt("0x4B") << 8 | StrToInt("0x38") ;
    int data3 = 0x4c << 16 | 0x4b << 8 | 0x38 ;





전병진 님이 쓰신 글 :
: 현재
: int data = 4999992
: 이런식으로 정수값이 들어있고 이것을 
: s2.sprintf("%X", data);
: 이렇게 변환하여 s2에는 4C 4B 38 로 헥사스트링으로 변환하였습니다.
:
: 문제는 문자로  LK8 로 변환을 해야하는데 어떻게 해야할까요
: 아래 비슷한 질문글이 있길래 봤는데 안대더라구요...
:
: 최종적으로 LK8 로 변환되면 되는데 검색해도 안나오더라구요...
:
: int data 에서 바로 LK8로 변환되는법도 있나요??
:
: 답변 좀 달아주세요~~

+ -

관련 글 리스트
72979 hex string 문자로 변환질문 전병진 3665 2015/09/10
72981     Re:hex string 문자로 변환질문 Intotheblue 4021 2015/09/10
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.