컴공 일기253
게시글 주소: https://app.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
차세대통신 가산점 있어요 과탐 3퍼
-
살아있다 1
그립읍니다
-
생중계 변론함?
-
상하이 라이브러리 어떻게 막을건데 ㄹㅇㅋㅋ 이렇게 계속 티원 젠지 딮기 3팀 체제로 가자니까?
-
뭐지 탈몬가 3
머리 3일만에 감으니까 거의 30가닥 빠진것 같은데..
-
경북대 모바일공학 수+탐평절사 2합3 미/기과탐필수 고려대 차세대통신 제한없음...
-
22수능 기하선택 백분위 94 2등급 23수능 기하선택 백분위 93 2등급 25수능...
-
피램 독서 0
25수능 2컷에 독서2틀인데 발단이랑 전개 중에 뭐부터 하면 좋을까요? 강기본,...
-
후자는 부모 둘다 고학벌자로 유전자 물려받음
-
어렸을 때 이런 주제에 대해 깊게 고찰했던 기억은 있는데 어쩌다보니 다 까먹었어요...
-
N수생할인적용했는데도 비쌈 메가캐쉬 문상충전도 안되는것같음 중고는 안할려고요
-
저녁 가끔 인 먹어줘야 하는데 이번주 되게 잘 나오네...
-
아니 많이 부러운데
-
아프내 으엉 나 러셀인데.........
-
대학커뮤니티 노크에서 선발한 성균관대 선배가 오르비에 있는 예비 성균관대학생,...
-
뱃지줘요 1
빨리!!!
-
안녕하세요 '지구과학 최단기간 고정 1등급만들기' 저자 발로탱이입니다. 지난 1년간...
-
고려대가 24일 발표한다고 공고한 이상연세대는 무조건 비슷한 날짜에 발표할 겁니다....
-
생글 에필로그 푸는데 쉬운 지문에서는 체화가 쉬운 거 같아서 어려운 지문으로...
-
도서관으로 가자 5
부지런행
-
메인 보내달라는 뜻은 아니고 한 4개 정도만...
-
;;;;;
-
운전면허 합격V 4
장내기능 3수하고 필기,도로주행 1번에 합격해서 1/3/1로 붙었네요 딴 사실보다...
-
[깨달은 점] 돈으로 행복을 살 수 없는 진짜 이유는 따로 있다. 1
통장에 그럴 만큼의 돈이 없기 때문이다. 。◕‿◕。
-
일단 난 머리 존나 멍청해서 걍 3년 꼬라박을거임 2월까진 쿠팡 다니면서 공부하고...
-
계약학과 노리는데 미적과2에서 확통 사2 둘다꺽으면 표점이나 가산점차이 너무...
-
진짜 개 엄청 겁나 중요함뇨 물론 돈을 벌기 위해 부도덕한 일을 해서는 안 되지만...
-
후후 4
후후
-
현역땐 어찌저찌 버티고 수능끝나자마자 장염걸리고 난리 났었는데 올해 1월부터...
-
이제 점심을 고민해야하기 시작했다
-
평소엔 몰랐는데 8
이렇게 보니까 많이 오르긴 한거구나...
-
Tlqkf 퇴사 1
마렵네
-
D-5h 1
퇴근
-
미쳤네 걍 ㅋㅋㅋㅋㅋ
-
엣지? 그거말고 그 독학서중에서 좋은것들 뭐가있ㅇ르까 다른과목들
-
얼버기+ 질문 5
눈썹 정리 팁좀 주세여
-
사탐은 살짝 알긴하는데 거의 노베임 한다면 사문 생윤 예정
-
한달 250 버는 초등교사vs한달 350 버는 치위생사 13
뭐가 더 낫다고 생각하세요?
-
학교 급간별 이미지가 우리가 알던거랑 뭔가 좀 다름.... 훨씬 후한 느낌? 어떤...
-
연대야 연대야 4
조발 안 하고 뭐 하니
-
재수생인데 모든 과목에서 느긋한 편이라 타임어택에 취약하달까.. 생명 화학하면서...
-
수1은 개념은 ㅈ같은데 문풀은 재밌음 수2는 개념은 재밌는데 문풀은 ㅈ같음 황금밸런스 ㅆㅅㅌㅊ
-
서울대 물리교육 서울대 학부대학 서울대 바이오시스템.소재학부 서울대 정치외교 서울대...
-
상지한b 1
974면 추합 도나요 ?? 어려울까요 ..?
-
서성한을 한 번에 붙어와라는 ㅅㅂㅋㅋㅋㅋ
-
어제 송도학사 입사신청서가 25학년도 버전으로 업뎃됐는데.. 작년에도 19일에...
-
오늘은 또 서양측에서 뭐라고 컴플레인 넣을지 궁금 ㅌㅋㅋㅋ 아놔 ㅋㅋㅋ
-
예비고3 독서 1
독서 기출을 계속 할려고 하는데 독서를 진짜 못해서 고2 마더텅 독서 하고 고3...
-
생일인데 선물 안 주나
이런 공부는 무슨 책으로 어떻게 하면 될까요?
주로 컴퓨터구조 전공 서적이나, C 전공 서적을 참조하시면 공부할 수 있습니다. 추가적으로 여기에 사용되었던 부호화된 2의 보수법이나, 부호비트, 비트연산 같은 경우는 논리회로라는 과목으로도 충분히 커버할 수 있는 내용이지요. 한빛미디어에서 나온 <디지털 논리회로> 책을 한 번 일별해보시는 것도 추천드립니다.
양이 워낙 방대하긴 하지만, 쭉 읽다 보면 컴퓨터라는 게 어떤 방식으로 작동하게 되는지 개략적으로 알 수 있을 겁니다.
감사합니다!!
컴공주님 혹시 그 책 완독하셨나요? 방학때 전공 대비로 공부해보려 하는데, 혹시 읽어보셨다면 후기 적어주신다면 감사하겠습니다
문제가 워낙 방대해서 문제를 다 풀진 않았습니다만, 내용 같은 경우는 완독했습니다. 다름이 아니라, 수업에서 채택한 교재였어서 아무래도 디테일하게 읽을 수밖에 없었죠.
다만, 시험이 아닌 공부적 관점에서는 헷갈리거나 모르는 것들 위주로 발췌독하는 것이 좋을 듯 합니다. 논리회로 특성 상, 컴퓨터 구조와 연관성이 아주 긴밀하기 때문에 컴구에서 회로적 관점에서 헷갈리는 부분이 있을 때 자주 발췌해서 봤죠.