컴공 일기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를 선물하세요.
-
지구 올해 처음시작해서 8월까지 개념만 들었는데 37점 받음 1년더하면 1...
-
이상형 적고 가셈뇨 18
전 어른께 예의바르고 성격 좋고 귀여운 청년.
-
금주4일차 9
오늘은그래도술생각덜났어요 이대로계속금주한다는거에요
-
룸메랑 사랑에 빠질수도있음
-
8명 뽑고 내신 1.5에 3합 7인데 가눙성 있을까ㅠㅠ
-
양지메가랑 서초메가 윈터스쿨 넣었는데 양지는 대기번호가 길고 서초는 20몇번대인데...
-
서강대는 전과 복전 괜찮다고 들었는데 한양대는 많이 어렵나요…
-
메가 기준 백분위 89 표점 126인데 안됨??? 전체 성적은 이런데 대학 어느정도 감?ㅠㅠ
-
가천대 클라우드공학과와 계약을 맺은 카카오엔터프라이즈는 현재 망하기 일부...
-
요즘 오르비에 많이 올라오는 글들을 보면 선택과목 뭐해야될까요/재수해도 될까요? 뭐...
-
지원하고 싶은데 외모 보고 뽑는다고 오피셜 띄워서 포기함뇨
-
학교가 재미가 없음 ㅋㅋ
-
머쓱머쓱
-
브래넌 존슨 0
사랑한다
-
이거 좋은 듯
-
'그대를 사랑하는 10가지 이유' 이 곡 왤케 좋음 2
이거 부른 가수도 모르고 노래도 전혀 몰랐는데 알고리즘 타고 들어보니까 명곡이네요..
-
과탐하자
-
나름 지1 대형 업체에서 사설 출제 일도 하고 평가원 1등급 7개 만점 3개...
-
98 95 > 98 99라 버릴수도없고 내년에11만 유지하면좋겠다
-
나는 이미 5
고대에 빠져버렸어..... 그냥 고대 갈게여 ㄱ 니까 제에발 나를...
-
근데이학교로뱃지를받음 ㅋㅋ
-
흔히들 수학은 한만큼 나온다고 하는데 이게 진짜 맞는말인가요? 제가 중1때부터...
-
나이가 많아서 친구들 결혼을 먾이 라는데 진짜 엄청 친한 친구는 안가기도 뭐하고...
-
안녕하세요 저는 이제 막 수능을 본 고3입니다. 제가 시대인재 송준혁선생님을 알게...
-
머가 더 유리?
-
이상해보이는 얘기긴한데,저는 목표를 설정할 때 목표를 현실에 두지말고 저 멀리...
-
이제 더더더더욱 고일텐데 아직도 과탐하고싶으면 안되는거야~ 너! 그러다가 3년뒤에 통합과학본다!!
-
의대 아님 서울대 건축학과 가고싶음 그럼 투과목 해까할까? 내신 bb아님 cc나올...
-
탐구를 망쳤네요 ㅠㅠ
-
확통 88 2
공통만 틀렸는데 백분위 몇일까요 지금 메가에서 93이라 희망고문 오지게 당하고...
-
국어에서 공통3틀92보다 공통2틀 선택1틀 92가 1등급 나올 가능성이 더 높은...
-
저처럼 과탐 “몇 년” 해봤다고 고집부리다가 수능날 나락갑니다 ㅋㅋ
-
그렇게 9수생이 되었다고 한다..
-
시대 확통 컷 9
3컷이 76-78로 나오던데.. 확통1틀 77이면 4로 뜰 가능성이 높을까요..?
-
어디까지 가능한가요(농어촌 가능)
-
현재 예비고3입니다. 제가 생명과학 중간고사 때 유전 앞부분(돌연변이 제외)를 좀...
-
이번 수능 컷은 입시 사이트가 유독 신뢰를 못받는 느낌 6
그간 많이 데여서 그런가 수능 다음날에는 분위기 나쁘지 않았는데 칸타타님 등장에...
-
증발되면 ㅆㄱㄴ인데
-
이자반
-
메가 ebs 이투스 진학사 유웨이 부산교육청 : 42 종로, 시대 : 43 대성 :...
-
문과 학벌만 보는거면 재수할때 그냥 확통하는게 맞죠? 공통 잘못하고 미적 노베에요....
-
그렇다고 세젤쉬 듣고 시발점 듣는 건 투머치인가요? 그냥 시발점 들어도 되나요?
-
자연계인데 올해 고2되고 처음으로 메가패스 끊었는데 결국 아무것도 완강 못하고 도움...
-
안녕하십니까 저는 06년생 남학생입니다. 제가 최저 맞출려고 했는데 최저를 못맞춰서...
-
수학 질문!! 1
미적 첫 개념인데 시발점이랑 쎈 or 마플 뭐가 좋나여? (시대 겨울 단과 갈 수 도...)
-
진지하게 신청하고 싶네요..
-
대체 1등급이냐 2등급이냐....진짜 다른 사이트는 1이고 메가는2고ㅜㅜ
-
심화특강은 0
무리 없이 이해하려면 대충 몇 등급 정도여야 함? 아니면 뭐 듣기 전에 기출을 한...
-
현재 고2…예비 고3인데요 제가 부모님이 이혼하셨고, 기초 생활 수급자라서...
이런 공부는 무슨 책으로 어떻게 하면 될까요?
주로 컴퓨터구조 전공 서적이나, C 전공 서적을 참조하시면 공부할 수 있습니다. 추가적으로 여기에 사용되었던 부호화된 2의 보수법이나, 부호비트, 비트연산 같은 경우는 논리회로라는 과목으로도 충분히 커버할 수 있는 내용이지요. 한빛미디어에서 나온 <디지털 논리회로> 책을 한 번 일별해보시는 것도 추천드립니다.
양이 워낙 방대하긴 하지만, 쭉 읽다 보면 컴퓨터라는 게 어떤 방식으로 작동하게 되는지 개략적으로 알 수 있을 겁니다.
감사합니다!!