#include <stdio.h>
int main()
{
int a;
char* x;
x = (char*)&a;
a = 512;
x[0] = 1;
x[1] = 2;
printf("%d ", a);
return 0;
}
=> 513 나옴
이러면 512가 0000 0010 0000 0000니까
x[0]=1;
x[1]=2; 연산하면
0001 0010 0000 0000돼서 4608나와야하는거 아녀
아니면 리틀엔디언으로 바이트씩 거꾸로 저장된다 쳐도 0000 0000 0010 0000이면
0001 0010 0010 0000해서 4640나와야겠는디
=======
병신같이 잘못적은거 있어서 수정했엉
Little endian이면 그럴수도있을듯
X[0]= 0000 0010 (2대입) X[1]=0000 0001 (1대입)
오 근데 char이 c에서 1바이트라던데 왜 여기선 2바이트씩 가져가는거야
1바이트 =8비트 고 저 int a=512 에서 512는 2바이트로만 처리가능하니깐 x[0],x[1]만 쓰는 듯
여기서도 1바이트만 가져가는데?.
ㅋㅋ아 1바이트가 4비트라 생각하고있었네ㅋㅋ 현타오네 형 고맙어
나도하나 알아갔다.. 막히는 거 잇슴 여기에 자주올려