형변환과 비트연산 질문드립니다.
초롱
2023.04.01
질문 제목 :형변환과 비트연산 질문드립니다.
질문 내용 :
패킷 스니퍼를 만들고 있는데 안풀려서 질문드립니다.우선 형변환struct ip_addr {
unsigned char ip_addr_octet[4];
};
struct ip_addr ip_shost;
unsigned int a;
가 있을 때
a를 8비트씩 나누어 ip_addr_octet배열에 넣으려면
ip_shost = (struct ip_addr)(unsigned char)(a);
이렇게 했는데 도저히 풀리지가 않네요...
결과적으로 int를 8bit씩 나눴으면 좋겠는데 어떻게 해야하나요?그리고 비트연산에서
int 32bit에서 앞에 3bit를 0으로 &처리 하고 싶은데 어떻게 해야하나요??
0x0FFF로 &처리 하면 4bit가 &0되서 안되는데...
-
발랄한그1녀
*(unsigned int *)ip_short.ip_addr_octet = a;
0x1FFFFFFF 로 & 연산하시면 됩니다.