컴공 일기252
게시글 주소: https://orbi.kr/00070242684
한 번쯤은 생각해 볼 법한 예제라서 가져왔습니다. 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를 선물하세요.
-
과탐 원투로는 설의 말고 연의/성의 같은 메이저는 못 간다고 봐야하나요? 0
원투로는 설의 말고 연의/성의 같은 메이저는 못 간다고 봐야하나요?
-
밸런스 게임임뇨 13
서울대 의예과 나온 평범한 외모의 사람 vs 지잡대 철학과 나온 차은우랑 도플갱어인 사람
-
13.1 쓰고있었네.. 지금 15.1.1까지 나왔구만..
-
ㅅㅂ 11-15라인이 7분컷이 말이 되냐
-
흑흑...
-
늘 늦어도 자정까진 잠들려 노력하는 편인데 이 양반들이 자정부터 화력이 세지니 원...
-
대충 월에 100쓰는거 같은데 취미 빼면 60후반까지 줄겠네,,,
-
오후.
-
자러감요 2
-
세 병은 너무 힘들어..
-
그렇게 고를바에 걍 재밌어보이는거 고르는게 나은듯
-
ㅇㅂㄱ 2
-
9시로 작전변경.
-
이미 수1 수2 둘 다 사서.. step0 step1 푸는데 며칠 정도 걸릴까오
-
국가에서 지원해주는데 컷도 맞히겠어~?~?~?~?~?
-
에공 에고공
-
작년에는 있던 강의에 붙이는거라 개강이 빨랐던거고 올해는 새로 찍어서 느린거임?
-
요즘은자제하게되는듯
-
분명 수능끝나고 2
다신 쳐다보지도 않는다했는데...어째서 가슴이 자꾸....뛰는것이지..?
-
https://m.blog.naver.com/kcmjungmin36/223679284...
-
폭빵 없애줬으면 좋겠음... 대체 뭔의미일까? 나도 안될 거 아는 대학 99...
-
1년 박아서 중대에서 서성한은 너무 아쉬운데 연고 진짜 제발..
-
바램 12일차 1
무언가를 간절히 바라면 그게 이루어진대요 지구 2컷 37 12일차
-
ㅡㅡ
-
ㅈㄱㄴ 칸타타 여대 3컷 미적 2컷 재수 경찰대 유빈 한완기 수학 화학
-
안녕하세요 이번에 재수 결심한 06인데요,이번 수능 화작 86점입니다 독서론 1개,...
-
수능수학난이도투표 10
23수능 14152230 vs 24수능2228 이라고 생각해서 23이 압도적이라고...
-
다들 쑥쑥 잘 올리던데....올해 공부하면서 수능은 재능이구나를 심하게 느껴버림...
-
일주일에서 이주 안되게 방치했는데 향수가 안에서 터졌는지 더플백이랑 니트, 공항잠바...
-
언미생지 59 92 3 45 38 대학만 봄 반영비 가산점 다 고려해서 ㄱㄱ잘아시는분만
-
순수 궁금
-
수능공부하면서 좀 과감해진듯 뭐든지 생각하고 저지르는 게 아니라 일단 저지르고 생각하려고 함
-
실모에 부은 돈이 얼만데~ 히카도 다 풀었는데~ 준킬러까지 골고루 다 틀렸어~...
-
수학은 조금 기다린 뒤에
-
오르비가 잘 안돼도 좋습니다 어쩌구저쩌구
-
모두행복하세요 9
해피해피
-
진짜 열심히 하는 애들이 특정 성적 이상으로 안 나오는 케이스가 은근 많음...
-
맞팔 해줄사람 있나.?...
-
여자친구 컴백
-
시코쿠는 국제면허 따고 갔다와야지...기차 시간표 박살나서 자차 없으면 개빡셀듯
-
1. 자신의 성적에 유리한 반영비, 변표의 대학을 찾아 지원을 한다. ( 혹은 과를...
-
작년 실제 표본 기준 최초합에 점수 상위 20퍼대인데 올해기준 낭낭하게 불합격임
-
삼반수는 못할 것 같다 원래 진짜 안 이랬는데 요새 안 좋은 생각 들고 꿈에서...
-
일 끝나고 집 돌아왔을 때 반겨줄 사람이 없다 생각해봐라 였는데 생각해보니 진짜 비참할거 같았음
-
닭집 분발해라 밀리면 안되지
-
나아님 퍼옴 0
ㅇㅇ
-
쫑느 미적 현강 생각중인데 겨울동안 공통 어떻게 공부할까? 공통 뉴런은 올해 힌번함
-
어느게 제일 어렵나요? (미적 기준)
-
그냥 머리 위로 한 번 넘겼는데 저렇게 빠짐 ㅋㅋ
이런 공부는 무슨 책으로 어떻게 하면 될까요?
주로 컴퓨터구조 전공 서적이나, C 전공 서적을 참조하시면 공부할 수 있습니다. 추가적으로 여기에 사용되었던 부호화된 2의 보수법이나, 부호비트, 비트연산 같은 경우는 논리회로라는 과목으로도 충분히 커버할 수 있는 내용이지요. 한빛미디어에서 나온 <디지털 논리회로> 책을 한 번 일별해보시는 것도 추천드립니다.
양이 워낙 방대하긴 하지만, 쭉 읽다 보면 컴퓨터라는 게 어떤 방식으로 작동하게 되는지 개략적으로 알 수 있을 겁니다.
감사합니다!!