본문 바로가기

잡다한 IT/참고용

C에서 1바이트씩 읽어오기


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


참고 사이트 

반응형