컴공 일기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를 선물하세요.
-
미적 85인데.. 이러면 낮~중간 2되는건가.. 흠.. 77~80이...
-
아가 취침 3
모두 군밤
-
일단 봉인 3
도수분포표 나오면 옴
-
에리카 공대면 3
현실에서 어느정도임 ?
-
헤헤헿 하하핳 이제 내 맘대로 인강을 들을 수 있따! 흐흐힣ㅎ흫 공부도 하고싶은...
-
저랑 노실분 3
근데 여기로와야함
-
빨리 5일 돼라 5
내 점수는 안 궁금한데 등급컷은 ㅈㄴ 궁금함
-
수학 공부 질문 4
이번 결방학때뉴분감 수1 수2쎈발점 미적할건데 다 할만한 양일까요?+ 다한다면...
-
수1 질문 4
a=4,b=2루트2는 쉽게 구했는데, 마지막 계산이 헷갈려요 b를 제곱안하고...
-
기다리셈뇨
-
미적런 3
미적런한 통통이인데 지금 현우진 시발점 미적 상 하고있는대 12/5일날 만약에...
-
걍 인강듣듯이 강의 보는거임? 자료는 택배로 오고?
-
와이프도 이쁘네 선남선녀노
-
서폿 로밍에 당했다고 그대로 꼴아박네 살인충동 존나올라오노
-
시대인재 질문2 1
제가 목동 시대인재 김성호 선생님을 들으려하는데 마감반으로 결제 부탁한다는데...
-
공부 조언 받고 싶은데 언제 올리면 가장 댓글 많이 달릴까?
-
https://arca.live/b/namuhotnow/122684336?p=1...
-
대학 간다고 신나햇겟지
-
안씻은지 시간으로 48시간쯤됨
-
지균 점공 27명 중 내신성적으로는 5등인데 처음부터 지균 생각안하고 교과에...
-
생명과학2 누구를 듣는 것이 좋을지 추천 부탁드립니다!!!
-
독서는 12월 중순부터 1월 중순 까지 마더텅 고2 풀고 문학은 올오카 들어갈...
-
지금 아무것도 못 믿는거 나도 알고있긴한데 걍 불안해서 물어봄
-
제가 첫 글을 쓴 지 10
일주일째네요 옯창으로 거듭나는 중임뇨
-
시대인재 질문 1
시대인재 대기자 충원 안내가 왔는데 대기자충원이면 현장반으로 가는건가요?
-
고대기원1일차 6
가자가자가자
-
여자랑 대화하고싶다 11
오늘 대학로갔는데 커플이 존나 많아서 상대적 박탈감왔음 물론 씹 알파메일이랑 만났지만
-
시발점 개정 5
개정버전들으라는 분들이 많은것같은데 대수는수1이랑 비슷한것같고 미적1은 수2같은데...
-
실채점 나오기 전에는 정확도 별로죠? 실채점 이후로는 지금보다 더 칸수가 떨어지나요?
-
예비고3 국어 6
예비고3이고 승리쌤 커리들을생각인데 고3기출아직 안했으면 마더텅 풀면서 인강듣는게...
-
수학 실전 개념 강의 들었으면 기출 다 풀 수 있어야 함? 2
그럼 수능도 다 맞아야 하는거 아님?
-
이러면 46은 백분위 96인가여 97인가여 95인가여?? 2
지2 46이 많지는 않을거같아서 4647묶인다는거같은데 97로되나여?
-
영어 성적이 제 말을 안듣네요^^.. 고2 모고 4-5등급 이번 모의수능 63점...
-
(맞팔)⁹ 6
-
흠
-
"수학의 자신감" "수학,결국은된다"
-
밖에 산책 겸 걷다가 비가 너무 쏟아져서 13층 올라가기 3번했는데 상당히...
-
영어 인강 추천 5
겨울방학때 구문 강의 들으면서 마더텅으로 혼자 머리깨지면서 기출할려하는데 구문 강의...
-
ㅈㄱㄴ
-
시대 김현우 1
김현우 단과 언제부터 신청할 수 있음?
-
안녕 3
굿바이
-
예비고2인데 이번 겨울방학때 국어 열심히 하려고 합니다. 25강기분 절반 정도?...
-
추합 상관 없음… 숭실대 인하대 가능? 문과로 돌리면 동국대 가능한가 ㅠㅠ
-
김승리 현강 0
김승리 현강 신청했는데 현강이랑 인강 차이 잘 아시는 분 없으신가요?? 현강 풀커리...
-
수포자 21
수학미워!수학미워!수학미워!수학미워!수학미워!수학미워!수학미워!수학미워!수학미워!수학...
-
시대 단과 같은 거라도 하나 끼는 게 낫나요
-
컨설팅 신청완뇨 0
이제 성적표만 잘 나와주면 된다
이런 공부는 무슨 책으로 어떻게 하면 될까요?
주로 컴퓨터구조 전공 서적이나, C 전공 서적을 참조하시면 공부할 수 있습니다. 추가적으로 여기에 사용되었던 부호화된 2의 보수법이나, 부호비트, 비트연산 같은 경우는 논리회로라는 과목으로도 충분히 커버할 수 있는 내용이지요. 한빛미디어에서 나온 <디지털 논리회로> 책을 한 번 일별해보시는 것도 추천드립니다.
양이 워낙 방대하긴 하지만, 쭉 읽다 보면 컴퓨터라는 게 어떤 방식으로 작동하게 되는지 개략적으로 알 수 있을 겁니다.
감사합니다!!