나는 지금 내가 진수로 변환하고 내가이 작업을 수행 할 수있는 방법CString을 UCHAR 배열로 변환하는 방법은 무엇입니까?
UCHAR sample[2];
Sample[0] = 0X50
Sample[1] = 0X43
같은 UCHAR 배열에 넣고 싶어 "5043"= CString이 객체의 캐릭터 라인이? 조언 해주세요
나는 지금 내가 진수로 변환하고 내가이 작업을 수행 할 수있는 방법CString을 UCHAR 배열로 변환하는 방법은 무엇입니까?
UCHAR sample[2];
Sample[0] = 0X50
Sample[1] = 0X43
같은 UCHAR 배열에 넣고 싶어 "5043"= CString이 객체의 캐릭터 라인이? 조언 해주세요
strol을 사용해 보셨습니까? 그것은 조금 낮은 기술이지만, 트릭을해야합니다. 기본으로 16을 전달하는 것을 잊지 마세요 ...
결과를 원하는대로 정확히 나눌 수 있도록 약간의 시프트와 비트 단위로 결합해야하지만 간단해야합니다. 이 도움이
희망,
사실, 나는 이미 변환 된 값을 가지고 있지만 UCHAR 변수로 업데이트해야합니다. – Naruto
흠,이 경우에는 다른 질문이 필요합니다. 즉 정수를 2 바이트로 분할하는 방법은 무엇입니까? (16 비트 값의 경우) 상위 바이트에는 8 비트, 비트는 오른쪽으로 시프트하고 하위 바이트에는 255로 시프트 (&)해야합니다. –
코드를 더 간단하게 만들려면 union을 사용할 수 있습니다.
union
{
UCHAR char_val[2];
long long_val;
};
CString str = "5043";
long_val = strtol(str.GetString(), nullptr, 16);
// use char_val here
이 이미이 스레드에 대답했을 수 있습니다
다음을 확대하기위한 가능성으로 http://stackoverflow.com/questions/3381614/c-convert-string-to-hexadecimal-and-vice-versa –
이 질문의 범위는 "cstring object str"-> "string"입니다. "UCHAR"-> "unsigned char"를 입력 한 다음 C++ 문항으로 남겨 둡니다. –