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
[71926] Re:Re:Re:C++ 빌더 16진수 data 10진수 변환 문의 드려요..
김시환 [godson2] 3854 읽음    2014-10-29 11:33
이전글의 추가적인 방법을 더 알려 드리면

공용체를 이용한 bit field를 사용하는 방법입니다.

typedef union hex_to_int
{
    short int_value ;

    struct
    {
        unsigned short low : 8 ;
        unsigned short high : 8 ;    
    } ;
}HEX_TO_INT ;


HEX_TO_INT data_value ;

data_value.low = Buffer[15] ;
data_value.high = Buffer[14] ;

Edit1->Text = data_value.int_value ;

이런식으로 사용해도 됩니다.





Rkluv 님이 쓰신 글 :
: 아아... 첫번째 인덱스에서 상대 길이 였군요... 감사합니다.
: 첨부파일은 컴아날라이저로 CMD를 날려서 데이터를 읽어 들였고, 결국 빨간 박스에 있는 값들을 받아 들여서 아래 코딩과 같이
: 작업을 한것입니다.
: 질문 1. 아래와 같이 CMD.sprintf("%c%s%c%c\n", 0x02, "002RCV", 0x03, 0x0D);를 변환 하였습니다.
:            이렇게 변환하여도 컴아날리이저에 02303032524356030D0A CMD를 날린 것과 같이 동일한 기능을 구현하는지...
: 질문 2. 들어온 Data들 중 빨간 박스의 값들을 취해 10진수로 제대로 바꾼 코딩인지,,,, 확인하고 싶습니다.
:
:  장비가 있어서 Test를 직접 하면 좋겠지만, 장비가 없어 제 생각만으로 코딩하기는 아직 실력이 너무 부족한것 같습니다 .
: 확인부탁드립니다.           
:
:
:    
:          AnsiString CMD;
:     AnsiString temp16;
:     AnsiString hum16;
:     AnsiString temp10;
:     AnsiString hum10;
:     AnsiString tpv;
:     AnsiString hpv;
:
:     CMD.sprintf("%c%s%c%c\n", 0x02, "002RCV", 0x03, 0x0D);
:     WriteCmd2(CMD);
:     Read2();
:     temp16 = sResult2.SubString(14,2);
:     hum16 = sResult2.SubString(20,2);
:     temp10 = StrToInt(temp16);
:     hum10 = StrToInt(hum16);
:     tpv = (temp10/100)-100;
:     hpv = (hum10/10);
:
:     sLabelFX15->Caption = tpv;
:     sLabelFX16->Caption = hpv;
:
:
:
:
: 송신영 님이 쓰신 글 :
: : SubString 의 두번째인자는 인덱스가아니라 첫번째 인자인 인덱스에의 상대 길이입니다.
: : 그리고 핵사값으로 "12"가 들어오면 앞에 "0x" 를 붙이고 StrToInt 하면됩니다.
: : 수신되는 데이터의 포멧이있어야 정확하게 알겠네요.
: :
: : Rkluv 님이 쓰신 글 :
: : : 안녕하세요 아래와 같이 문의드립니다.
: : :
: : : 장비에서 넘어오는 16진수 data를 10진수로 변환하려고 합니다.
: : :
: : : AnsiString CMD;
: : :    
: : :          AnsiString temp16;
: : :     AnsiString hum16;
: : :     AnsiString temp10;
: : :     AnsiString hum10;
: : :     AnsiString tpv;
: : :     AnsiString hpv;
: : :
: : :     CMD.sprintf("%c%s%c%c\n", 0x02, "002RCV", 0x03, 0x0D);
: : :     WriteCmd2(CMD);
: : :     Read2();
: : :     temp16 = sResult2.SubString(15,16);
: : :     hum16 = sResult2.SubString(21,22);
: : :     temp10 = StrToInt(temp16);
: : :     hum10 = StrToInt(hum16);
: : :     tpv = (temp10/100)-100;
: : :     hpv = (hum10/10);
: : :
: : :     sLabelFX15->Caption = tpv;
: : :     sLabelFX16->Caption = hpv;
: : :
: : : 컴파일 에러는 없는데 장비가 없어서 직접적으로 테스트는 못해보고 있습니다.
: : : 코드상 이상이 없는지 확인하고 싶습니다 . 감사합니다.
: : :

+ -

관련 글 리스트
71921 C++ 빌더 16진수 data 10진수 변환 문의 드려요.. Rkluv 4065 2014/10/27
71922     Re:C++ 빌더 16진수 data 10진수 변환 문의 드려요.. 송신영 4219 2014/10/27
71924         Re:Re:C++ 빌더 16진수 data 10진수 변환 문의 드려요.. Rkluv 4014 2014/10/29
71926             Re:Re:Re:C++ 빌더 16진수 data 10진수 변환 문의 드려요.. 김시환 3854 2014/10/29
71925             Re:Re:Re:C++ 빌더 16진수 data 10진수 변환 문의 드려요.. 김시환 4263 2014/10/29
71927                 Re:Re:Re:Re:C++ 빌더 16진수 data 10진수 변환 문의 드려요.. Rkluv 3911 2014/10/29
71928                     Re:Re:Re:Re:Re:C++ 빌더 16진수 data 10진수 변환 문의 드려요.. 김시환 3763 2014/10/29
72032                         Re:Re:Re:Re:Re:Re:C++ 빌더 16진수 data 10진수 변환 문의 드려요.. Rkluv 3612 2014/11/25
72034                             Re:Re:Re:Re:Re:Re:Re:C++ 빌더 16진수 data 10진수 변환 문의 드려요.. 김시환 3923 2014/11/25
72046                                 Re:Re:Re:Re:Re:Re:Re:Re:C++ 빌더 16진수 data 10진수 변환 문의 드려요.. Rkluv 3642 2014/11/27
72049                                     Re:Re:Re:Re:Re:Re:Re:Re:Re:C++ 빌더 16진수 data 10진수 변환 문의 드려요.. 김시환 4006 2014/11/27
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.