컴공 일기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를 선물하세요.
-
백분위 어느정도 받아야됨?
-
안녕하세요 시대인재 국어 KEY T 현강 신청하려는 고3입니다 전화해서 안내받고...
-
호머식해도못가던데 ㅋㅋㅋㅋ 확통으로올거면걍만점을받으라는거지..
-
이러면 뭐가 나음요 집에서는 부산이 좀 더 가깝긴한데
-
대충 맨시티 망했나보네
-
어느대학 정도면 상경할 거 같나요 저는 건국대 ㄷ 부산대는 좀 고민되는 거 같은데ㅠㅠ
-
올해수능 봤어도 잘 걸거라는 장담을 못하겠음
-
고대기원3일차 0
-
요즘 일상 10
9시 반 기상 탁탁탁 아침식사는 시리얼 피아노 와장창 점심식사 약간의 공부 탁탁탁...
-
정신적으로 무너지는 기분이 든다 뭔가 ㅈㄴ 늘어놓고 싶어도 걍 현타와서 다 지워버림..
-
30초남자 생일선물 보통뭐받고싶어함? 물어보니까 자긴 필요한게없다는데 ㅜㅜ 개바쁜사람임
-
물리 2컷 1
ㅈㅂ...... 시대컷보니까 컷 44던데 아니죠?ㅠㅠㅠㅠ제발 43이면...
-
안정으로 하나 쓸 때 외대나 경북이나 떨어지면 미친 수준이라 둘 중에 하나...
-
轗 0
길이 험하여 수레가 가기 힘들 감
-
玂 0
개 새끼 한 마리 낳을 기
-
“고시 게시판”을 신설해야 한다. 로씨행 로씨행 신나는노래
-
잘 하려고 열심히 하는 것인데,,, 열심히 하는데 잘 못한다면,,
-
확통 백분위 대충 86까지 내려간다치면 국숭 가능할까요?
-
프로필이랑 상세설명 올려놨는데 잘구해짐?
-
알려드릴까요? 와 ㅈㄴ 잘생겼음
-
”경희한논술 불합격“
-
님들 경제하셈 10
경제가타임어택이다 <---이거혼자꿀빨려는경제러들가스라이팅임뇨...
-
히히히히히 3
ear sex let's go
-
난이도는 미적이 훨씬 어렵긴한데 미적찍맞도 엄청 많고 22번틀린 1-2등급 많아서...
-
설대>>>생윤등의 과목등이 표점 폭발 연대>>수학 반영비 축소, 사탐3퍼가산...
-
눈 감았다 뜨면 열흘 지나있스면 안되냐
-
48/50 50/50 에서 3/3뜨는거는 대체뭔개같은경우임뇨
-
나 모르는문제 17로 찍는다고 아오
-
개인적으로 사탐은 밑도 끝도 없이 불로 내야한다고 생각 7
47점 3등급은 시발
-
안정적인 사탐과목 12
뭐있을까요... 하반기에 공부량 줄일 수 있는거 사문말구 지금올리면 답변 못받으려나
-
양심고백 5
22번을 풀었는데 의문사했어요 그리고 30번을 찍맞했어요 그래서 사실 찐실력은 76이에요...
-
미적2등급이면 국숭세단 라인 논술로 붙을 가능성 몇 펀가요 5
높2 낮2 둘 다ᆢ가정하에요
-
모교안가고 다른곳가서접수했는데
-
에버튼 vs 리버풀 이거 관심있는데 분위기 어떰?
-
지듣노나보고가라 2
-
공부일기 4장 6
D-347 12/3화 -국어 피램국어를 시작했다 문학편을 2일차 중반까지 공부했는데...
-
중앙대 안되겠져 6
교차로도 안되겠죠? 시립대는 될려나 에휴….
-
내신 1.9 3년 한의대 생기부 + 생기부 퀄이 좋다는 가정하에 어느 전형의 합격...
-
생1 생2 0
어케생각함?
-
탈르비하면 닉다시못씀?
-
표점으로 생윤39= 화1 50 시발 아 ㅈ같다
-
바로 독서문학 들어도 상관없나요?
-
하 중딩때 봤던건데 뽕이 아직도 참 만해 쓸때마다 가슴이 도키도키
-
팀구컷 나오고 표점별 인원으로 대강 등급컷 윤곽잡히고 현역 담임샘피셜 점수컷 나오고
-
이제 수능보는 정시러 예비고3인데 물, 화 하다가 화학 진짜 모르겠어서 포기하려는데...
-
고려대 수시 붙는거긴해 4합8도 맞추고 학종 논술 둘 다 썼는데 그냥 들여보내주면...
-
내청코안봤으면 0
로맨스애니좀봤다고 말못함??? ㄹㅇ인가
-
예비고3 커리 6
곧 시험끝나고 다다음주부터 존나 달릴건대 고2모고는 1 뜨고 이번수능 공통까지는...
이런 공부는 무슨 책으로 어떻게 하면 될까요?
주로 컴퓨터구조 전공 서적이나, C 전공 서적을 참조하시면 공부할 수 있습니다. 추가적으로 여기에 사용되었던 부호화된 2의 보수법이나, 부호비트, 비트연산 같은 경우는 논리회로라는 과목으로도 충분히 커버할 수 있는 내용이지요. 한빛미디어에서 나온 <디지털 논리회로> 책을 한 번 일별해보시는 것도 추천드립니다.
양이 워낙 방대하긴 하지만, 쭉 읽다 보면 컴퓨터라는 게 어떤 방식으로 작동하게 되는지 개략적으로 알 수 있을 겁니다.
감사합니다!!
컴공주님 혹시 그 책 완독하셨나요? 방학때 전공 대비로 공부해보려 하는데, 혹시 읽어보셨다면 후기 적어주신다면 감사하겠습니다
문제가 워낙 방대해서 문제를 다 풀진 않았습니다만, 내용 같은 경우는 완독했습니다. 다름이 아니라, 수업에서 채택한 교재였어서 아무래도 디테일하게 읽을 수밖에 없었죠.
다만, 시험이 아닌 공부적 관점에서는 헷갈리거나 모르는 것들 위주로 발췌독하는 것이 좋을 듯 합니다. 논리회로 특성 상, 컴퓨터 구조와 연관성이 아주 긴밀하기 때문에 컴구에서 회로적 관점에서 헷갈리는 부분이 있을 때 자주 발췌해서 봤죠.