이전게시판/C, C++
서버 파싱 중 이진수 데이터 조합
ㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇ
2018. 6. 20. 11:59
서버에서 패킷을 받아서 데이터 파서 중 이해가 안가는 부분이 생겼다.문자열 배열이 있을 때 2Byte씩 파싱하는 중이었다.그런데 2byte 파싱한 데이터가 결과가 내 예상과는 달랐다.확인한 데이터는 배열 0번째는 154, 배열 1번째는 8이었다.예시소스코드unsigned char tempString[2];tempString[0] = 154;tempString[1] = 8;unsigned short data;memcpy(&data, tempString, 2);154는 2진수로 100110108은 2진수로 1000결과는 10011010 1000 = 100110101000 = 2472인 줄 알았다그런데 값이 안맞아서 확인해보니tempString[0]이 0번째이므로 0~255값을 나타냈기 때문에 뒤로 가야한다.그래서 10011010 1000 자리를 바꿔줘서 합쳐줬더니 알맞은 값이 나온다.1000 10011010 = 100010011010 = 2202