//출처 : 내가만든거
QString CUtil::hexaToHexaString(uint target, ENDIAN endian)
{
QString retValue;
uchar targetBuf[4] = { 0, };
uchar* targetPtr = (uchar*)⌖
if (endian == ENDIAN_BIG)
{
targetBuf[0] = targetPtr[3];
targetBuf[1] = targetPtr[2];
targetBuf[2] = targetPtr[1];
targetBuf[3] = targetPtr[0];
}
else
{
targetBuf[0] = targetPtr[0];
targetBuf[1] = targetPtr[1];
targetBuf[2] = targetPtr[2];
targetBuf[3] = targetPtr[3];
}
retValue.sprintf("%02x%02x%02x%02x", targetBuf[0], targetBuf[1], targetBuf[2], targetBuf[3]);
return retValue;
}
QString CUtil::hexaToAsciiString(const uint hexaData, CUtil::ENDIAN endian)
{
char* ascStr = (char*)&hexaData;
QString ret;
if (endian == ENDIAN_BIG)
{
ret.append(ascStr[3]);
ret.append(ascStr[2]);
ret.append(ascStr[1]);
ret.append(ascStr[0]);
}
else
{
ret.append(ascStr[0]);
ret.append(ascStr[1]);
ret.append(ascStr[2]);
ret.append(ascStr[3]);
}
return ret;
}
함수설명
예를들어 데이터를 int(4byte)에 담아서 뭔가를 한다고 하자 근데 1byte마다 hexa형태의 데이터를 사용해야 할 때가있다.
가령 데이터가
0x31313131 < - 요런식으로
첫번째함수는
0x31313131를 -> 고대로 "31313131" 로 바꾸어준다
두번째함수는
0x31313131를 -> 아스키형태의 String으로 "1111"로 바꾸어준다. 필요한사람 가져다쓰세요~
함수는 uint로 했지만 다른 메모리를 사용하고 싶다면 적당히 오버로딩해서 여러타입을 넣어서쓰면된다.
'Qt' 카테고리의 다른 글
Qt에서 QR코드 읽는 라이브러리. (1) | 2020.04.24 |
---|---|
Char 를 QBitArray로 변환 (0) | 2020.02.03 |
Qt의 Signal Slot 삭제하기(Disconnect) (0) | 2020.01.16 |
Qt에서 USB 연결 인식하기 (Feat. Win32API Message) (0) | 2019.12.09 |
.Pro file에서 전역 매크로 선언하고 해당 매크로 제어하는 방법 (0) | 2019.07.22 |