little endian 질문드려요 ㅠ
배꽃
2023.04.01
int main(void)
{
int n=0x44434241; //0xffffffff
char *pn=(char*)&n;
printf(%x %x %x %x\n, *(pn+0), *(pn+1), *(pn+2), *(pn+3));
return 0;
}
메인함수인데요 n의 값이 0x44434241일경우에는 무리없이 원하는값이 출력이됩니다.
0xffffffff를 출력할경우에 ff ff ff ff 이렇게 출력안디고 ffffffff ffffffff ffffffff ffffffff 이렇게되는데
왜그런겆ㅅ ㅠ
-
홀림길
앗 ㅋㅋ 시원하 대답이십니다 감사드려요
-
꽃초롱
pn[0]...pn[3] 까지 -1(0xFF) 이고, 이것이 printf 에 -1(0xFFFFFFFF)로 전달되기 때문입니다.
unsigned char *pn = (unsigned char *)&n; 으로 하시면, 0x000000FF가 전달되겠죠.