|
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로 변환되는법도 있나요??
:
: 답변 좀 달아주세요~~
|