unsigned char* ptr 를 이용하면 1바이트씩 읽어올 수 있다.
또는 강제 형변환을 통해서 해결할 수 있다.
아래 예제는 0x12345678 인 temp 변수를 0x78563412 로 변환시키는 코드.
1바이트씩 읽어서 포인터를 이용해서 swap 을 시켰다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #include<stdio.h> int main() { int temp = 0x12345678; unsigned char* p = &temp; //char* p =(char*)&temp; int v; printf("temp : 0x%x\n", temp); //0x12345678 for (int i = 0; i < 2; i++) { v = *(p+i); *(p+i) = *(p + 3 - i); *(p + 3 - i) = v; } printf("temp : 0x%x\n", temp); //0x78563412 return 0; } | cs |
http://hisjournal.net/blog/175
참고 사이트
반응형
'잡다한 IT > 참고용' 카테고리의 다른 글
포인터 종류 정리 (0) | 2018.06.15 |
---|---|
리틀 엔디안 과 빅 엔디안 (0) | 2018.06.15 |
const char *p 와 char* const p 의 차이점 (1) | 2018.06.14 |
C++ 서버 클라이언트 코드(주석) (0) | 2018.06.12 |
listen()함수의 backlog 인자 (0) | 2018.06.12 |