컴공 일기252
한 번쯤은 생각해 볼 법한 예제라서 가져왔습니다. C를 한 번이라도 배워보셨던 분은 한번 풀어보셔도 괜찮아 보이네요.
int main()
{
unsigned int num1 = -1;
unsigned char num2 = -1;
printf(“%d %d”, num1, num2);
}
정답은 -1 255가 됩니다.
서식지정자 %d의 작동 메커니즘과 부호 비트에 관해 어느 정도 상세히 알아야 풀 수 있는 문제입니다.
unsigned int는 기본적으로 부호비트가 없는 32비트이고 부호화 2의 보수법에 의거해 2진수로 나타내면
num1 = 1111…11((32개)가 됩니다. 다시 말해 실질적으로 num1에 들어가는 값은 -1이 아닙니다.
-1을 부호화 2의 보수법에 의거해 2진수로 나타내면 1111….1(32개)인데, unsigned int라는 형에 의해 마지막 1이 부호비트로 해석되지 않아 2^32-1이 최종적인 값으로 num1에 대입됩니다.
마찬가지로 unsigned char는 8비트이므로 num2 = 111..1(8개) = 255가 되겠지요.
여기까지 생각한다면 결괏값은 2^32-1 255가 되어야 할 것 같지만, 함정이 하나 더 있습니다.
서식지정자 %d의 메카니즘.
%d라는 서식지정자는 32비트 2진수를 10진수(decimal)로 재해석해서 콘솔에 출력하라는 의미입니다.
그런데, 여기서 %d에서는 부호비트를 적용하게 되지요.
즉 1111…1(32개) = -1이 되어 출력됩니다.
그렇다면 8비트짜리는요? 32비트 10진수를 출력해야 하는데.. 24비트가 부족하게 되지요. 그렇다면 형식에 24비트를 채워야 합니다. 어떤 방식으로 채워야 할까요? 기존의 8비트짜리 변수가 음수라면 1을 채우고, 양수라면 0을 채웁니다.
111..1(8개) = 255이고, 이 자체가 양수로 평가되므로 %d 서식지정자에 의해 000…011111111이 num2에 해당하게 됩니다. 마지막 비트에 해당하는 부호비트가 0이므로, 255가 그대로 출력되게 됩니다.
아주 간단한 예제지만, 컴퓨터 구조를 꽤 정확하게 알고 있어야 도출할 수 있는 예제가 되겠군요.
0 XDK (+0)
유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.
-
[이동훈t] 2026 이동훈 기출 나머지 타이틀 오픈 일정 0
2026 이동훈 기출 https://atom.ac/books/12829 안녕하세요....
-
뭐지 왜 졸리지 3
뭐지다노
-
예비고3 강기분 3
예비고3입니다 인강은 처음이고 고2 모고 1~2 왔다갔다합니다. 강기본 안듣고 바로...
-
차이를 좁히는 것은 어려운 일이네요,, 반가워요 선생님,,
-
사탐런 치대? 5
사탐런 치대 약대 가능한가요? 치대는 걍 과탐이고 약대 정도는 연세대 같이 사탐...
-
41점으로 20번이랑 계층 개념3점 틀렷는데 뭔가 허겁지겁풀다가 시간관리 못해서 좀...
-
갑자기 든 생각인데 3학년때 선택과목에서 미적분을 안골랐는데 (자습 많이 주는 수업...
-
근데 서연고는 팩트임 28
서강대>연고대
-
킥킥.. 2
-
낮엔 풀로 문제 풀면 되잖아 진짜 왜 이 생각을 못했지
-
그래야 나도 2등급이니까
-
서울여대 수학과 코딩 중소 취업 원함 고졸 취업이 쉽다는대 ㄹㅇ? 주변 보면...
-
올오카 떠서 교재는 구매했는데 강좌는 못사는건가요? 인앱결제 정책때문에 못산다는데...
-
기절당하나요?
-
사문은 개념+마더텅 기출 다 끝냈고 정법은 개념 기출 기선제압 이렇게 끝냈는데...
-
ㅜㅜ
-
지금 칸수에서 더 떨어지면 전적대와 같거나 옆그레이드 ㄹㅇㅋㅋ 이게 맞나 ㄹㅇ?
-
진짜 놀라운 거 13
a,b>1, x,y>0인 정수들일 때x^a-y^b=1의 해는 딱 하나다....
-
지금 ㄹㅈㄷ인점 3
어그로 개많아보이는데 그렇게 팔로잉을 했는데 어그로만 팔취임 ㄹㅈㄷ
-
냄새가 난다 1
내 인생이 활활 불타는 냄새가 난다
-
목요일의 진짜는 1
담임쌤 유출임
-
공부해야 되는데 1
롤이 너무 잘되서 미친듯이 롤만 하는 중 에메만 찍고 공부하러간다
-
작년에 몇명 있었나요?
-
아니 원래 수분감은 수능 다음주에 바로 뜨는거 아녔냐 올해 설마 전문항 새로찍어주나.....?
-
자각몽 공부법 자각몽에 들어가서 공부하는 거임 온갖 개소리가 난무하는 공부법이...
-
수시로 연고대 동일과 붙은 애들 90퍼 이상이 연대 가는데 뭔
-
공부 효율 증진 목적으로 정상인들이 콘서타,메디킷…막 복용하고 그러는데.. 그거...
-
삼반수 에반가요 2
현역 35213 재수 34211 화확쌍윤입니다 사실 재수도 제가 돈 벌어서 했긴...
-
표본 다 안참
-
수학 고정 96 3
수학 평가원 고정 96점정도 나오려면 보통 실모 몇 점 나오나요 +객관식 ( 15번...
-
의반은 역시 상상이상으로 잘함뇨…
-
내년 과탐 7
죄다 화1꼴 나는거아닌가 만백96 사탐런개많네ㄷㄷ
-
ㅈㄱㄴ
-
나는 만18세.군필.대졸. 아...행복해ㅎ.ㅎ
-
뭐가 더 값싼가요
-
크아악크아아앋 6
수시발표언제함 슬슬 인내심의한계가옴. 정문안열어주면 뿌수고들어가겟슴
-
라인좀 봐줘 0
아는지인분 점순데 언미 생지로98 92 1 47 50임
-
이거면 어디 택하시나요?
-
의견이 어떠신가요 만약에라도 27수능까지 보고도 성적 마음에 안들면 더 해도 괜찮은건지..
-
국어 강기분 독서 문학 어려운거랑 애매한 지문 최대한 풀기 수학 수꼭필로 고1수학...
-
는 도대체 머임? 오늘 얘기하다가 들음 남자얘기임
-
무난한편인가요???
-
올해 미적 73 2
행정학과 목표 재수인데 내년 확통 볼까요 미적 볼까요
-
생2생윤 or 생윤윤사 or 생윤정법 이중 뭐가 좋음? 국수영 314고 생지...
-
이런 강의들이 개념/기출 하면서 배우는 내용이랑 개념/기출 강의 하몀서 가르치는...
-
예를들어서 foolish를 '멍청한' 이라고 알고 시험쳤는데 단어장에는...
-
히히 똥 3
똥 발싸
이런 공부는 무슨 책으로 어떻게 하면 될까요?
주로 컴퓨터구조 전공 서적이나, C 전공 서적을 참조하시면 공부할 수 있습니다. 추가적으로 여기에 사용되었던 부호화된 2의 보수법이나, 부호비트, 비트연산 같은 경우는 논리회로라는 과목으로도 충분히 커버할 수 있는 내용이지요. 한빛미디어에서 나온 <디지털 논리회로> 책을 한 번 일별해보시는 것도 추천드립니다.
양이 워낙 방대하긴 하지만, 쭉 읽다 보면 컴퓨터라는 게 어떤 방식으로 작동하게 되는지 개략적으로 알 수 있을 겁니다.
감사합니다!!
컴공주님 혹시 그 책 완독하셨나요? 방학때 전공 대비로 공부해보려 하는데, 혹시 읽어보셨다면 후기 적어주신다면 감사하겠습니다