int A = 0x12345678;
이렇게 int 형 변수에도 16 진수를 넣을수있고
A++;
하면 A 는 0x12345679 가 되잖아
내가 의문인것은 난 원래 int 가 10진수 변수 인줄알았는데 어째서 저렇게도 쓰일수 있냐는거야
대체 어떤원리로 저런거야 ? 만약예를들어
int A = 0x12345678;
int B = 999;
이렇게 선언해놓고
A += B;
이렇게하면 저연산은 16진수로 진행됨 ? 아니면 10진수로 진행됨 ?
그리고
int A = 0;
scanf( " %d ",&A );
이렇게 했을때 A 에 10진수 값이 들어가면
이걸 다시 16진수로 어떻게써 ?
for( ; A <= 0x12345 ; A++ )
이런식으로 for 문을 돌면 다시 A 는 16진수가 되는건가 아니면 뭔가 작업을 해줘야되는건가..
무튼 이궁금증을 해결좀...
그리고 int A; 에 10진수가 들어왓는데 소스코드 상에선 16진수 처럼 어떻게써?
............ 뭘로 해도 어차피 2진수로 저장된다고 ㅡㅡ).... 컴퓨터 아키텍쳐좀 배와야 쓰거쓰...
쉽게 얘기해서 다 2진수야 어차피 저장할때는 0아니면 1이거든 ㅇㅅㅇ int는 10진수 변수가 아니고 정수형 소수점 없는 숫자를 저장하고 있는거지
표현을 2진으로 하건 10진법으로 하건 16진법으로 하건 양은 변함이 없으니까 보이는 모양만 다를뿐 연산에는 전혀 지장이 없고
scanf(\"%d\",&A) 이것도 10진수 값을 저장하는게 아니라 내가 숫자를 입력하면 니가 그걸 10진수라고 이해해서 A에다가 저장해라 이거고
0x12345 도 16진법의 상수니까 어차피 컴퓨터에 저장될때는 2진수로 저장되 변수에 저장된값을 다시 16진수로 만든다던가 그럴 필요가 전혀 없는거임 16진법형태로 출력을하자 라던가 그런게 아닌이상
ㄴ 아 그렇구나 고마워 ... 아키텍쳐고 뭐고 프로그래밍 수박 겉핧기 식으로 배운놈이라 근본이 안되있어서 그래..
ㄴ 또 질문이있는데 i = 831948; 이런게 있으면 저걸 16진수로 변환해서 for문을 돌고싶은데 어떻게 해야할까 for( i = 0x1234 ; i < 0x1239 ; i++ ) 이런식으로 사용하고싶어
ㄴ 문제는 i 를 사용자한테 10진수로 입력받을껀데 어떤 수로 들어올지 몰르겠어.
ㄴ 그래서 그 10진수를 16진수로 변환해서 for 문으로 16진수 돌듯 돌고싶은데 어떻게해야될까
와 진짜 근본이 안되어있네요.
ㄴ 근본안된거 내 잘못이긴한데일단 해결책좀
그 근본 말고 딴 근본도 안되있구먼 ㅡㅡ).... 설명을 해줘도 거참..... 몇진수던지 간에 숫자는 숫자라고....
ㄴ 미안.. 내가 프로그래밍을 인터넷으로 배운지라; 그럼 포인터도 본래 16진수를 줘야할것을 10진수로 변환해서 입력해줘도 결국 같은곳을 가리키는게 맞다면 내가 잘 이해하고있는것같아..
심심해서 가끔 오는데..오늘도 이분 아직도 포인터로 돌리는 이상한거 아직도 하고 있네..제가 어제 2008이상은 메모리 볼수있다고 알려드렸자나요..그 포인터값을 int 로 해서 얻은 값을 디버그해서 창에보면 메모리 있음..거기에 넣어보세요..