컴공 일기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를 선물하세요.
-
카나코인사망기념 2
옛날에 쓰던 프사 뿌림
-
대 쿠 팡 1
노트북샀는데 내일온다는거 진짜 도랐네
-
왜캐 심하게 나는건가요 ? 사실상 둘이 똑같은 모집단위 아닌가요 ?
-
기타 학원 가고싶음뇨 14
근데 더이상 돈을 축내면 안되지않을까
-
"탈모·연봉 4000만원 이하 男 가입 불가"…논란의 KBS 예능 결국 2
방송통신심의위원회가 ‘키 167㎝ 이하, 연봉 4000만원 이하, 탈모’ 등을...
-
금요일날 만나요 4
다들 실채가 가채 이상으로 나올거에요 응원함
-
다이어트17일차 3
아침 간계밥 점심 수육국밥(밥 좀 남김뇨) 저녁 샐러드 닭가슴살 미니고구마 1개...
-
그러면 건동홍 갈 수 있는데
-
네네
-
손에 좆도 안잡히네 애미
-
명문대생이엿노 노래 잘 부르고 잘생기고 키큰 멋진 사람 캬
-
성쩍!(sexual) 표 라고 말함 엄마한테
-
ㅇㅈ 11
이거 단풍손인가여...? 전부터 생각한 건데 손가락 꽤나 짧아보임요
-
무슨뜻일까요 난이도라고 생각했었는데 1분컷 문제에 별 5개 달려있고 꽤어려운거에...
-
국어 조언즘요… 3
안녕하세요 현재 중3이구요.. 고1국어랑 고2국어 지문 많이 차이날까요? 지금...
-
성적표 0
전날에 쌤들은 알수있나요? 전날에 알려주는 쌤도 있는것같던데 부탁하면 알려주시나요?
-
아주대 지능형 반도체 공학과 작년에는 1학년 tsmc가더니 올해는 1학년 ces데려가네 ㄷㄷ
-
나임뇨
-
친구들이랑 있으면 맨날 부끄러워서 못불러서 혼자 불르고 싶은데 혼자 가본 사람있음?...
-
보통 물화는 1컷 2컷 간격이 넓고 생지는 간격이 좁은 건가요 보통 생지는 3점차이...
-
대학 축제 <<< 이거 현역때부터 로망 1위였어서 힘들때마다 축제 직캠 돌려보면서...
-
라인 + 시립대 6
불안감에 글 씁니다.. 화학 때문에 라인 가늠이 안 돼서 + 시립대 수학과 가능성...
-
실패하면 응급실에서 병동으로 끌고 가는데 폐쇄병동 내에선 폰 사용 금지임뇨 오르비 못 함.
-
오티에서 담배 피실 분들? 하니까 진짜 거짓말 안 하고 우르르 나가고 거의...
-
대학라인잡아주셈 0
언미영생1물2 95 100 2 45 50 어디까지 될까 영어 2여서 애매;;
-
라리가 3강 5
등차수열 확실하구만
-
미적분배우길래 재미없었음
-
윤도영 피셜 8
현 텔그 64퍼 실채점 이후에도 붙는다
-
맞89 4
-
락찔이특 4
코노에서 이상한거 부름
-
10에 8은 담배를 피는것같네
-
아 1
정상화빔 맞고나서 인생이 정신을 못차리네 이또한 윤창섭의 은혜겠죠..ㅅㅂ
-
지듣누 0
많이 공격적(aggressive)입니다.. 팝 취향이신 분들은 약간 안 맞을수도..
-
크럭스 팀은 #~#.
-
나도 주식해볼까 5
시드는 조금 있긴한데
-
정석민vs김승리 <--- 누구따라갈지 ㅈㄴ 고민됨 11
원래 수능 본 후에 정석민 풀커리 타기로 생각하고 있었는데 정석민이 주간지가 없어서...
-
인생이 너무 ㅈ같아요 15
담배없이 살수가 있나??
-
경희대 낮문 6
건대나 경희대 낮은 문과 정도는 가능할까요 이정도면.??
-
이번수능 과탐 화1 지1 봤는데 둘다 공부 안해서 66나온듯.……. 수학은 실수...
-
솔직히 SKY 이상 갔는데 반수는 양심없는 행위임 ㄹㅇ 21
라리가 올해 어디가 우승할까요?
-
사실 내 다짐 적는 느낌이긴함
-
아사히라고일본여친있는데 올해까지는안보기로했음 근데매일매일이고통이더라
-
삼수고민 3
현역 언미물생 52242 재수 언미물생 42411 6모 31411 9모...
-
기원 3일차
-
수2)“도함수의 넓이는 원시함수의 함숫값 차이다.”라는 말이 맞는 말인가요? 10
수2 내신 서술형 준비하는데 이 말이 맞나 싶네요
-
미적 88 4
20 22 28 틀린ㅜ88입니다....미적분 선택햇고요...
-
라인 최대한 높게 어디까지 가능할까요...? 중경시 쓸 수 있을까요
-
연애해보신분들 32
어떤 감정인지 너무 궁금함다 고백후 성공했을때 진짜 어떰?? 상상만해서...
-
40 이내로 추천좀… 발렌시아가 이런거 ㄱㅊ음?
-
나는 풀숏인데 ㅅㅂ
이런 공부는 무슨 책으로 어떻게 하면 될까요?
주로 컴퓨터구조 전공 서적이나, C 전공 서적을 참조하시면 공부할 수 있습니다. 추가적으로 여기에 사용되었던 부호화된 2의 보수법이나, 부호비트, 비트연산 같은 경우는 논리회로라는 과목으로도 충분히 커버할 수 있는 내용이지요. 한빛미디어에서 나온 <디지털 논리회로> 책을 한 번 일별해보시는 것도 추천드립니다.
양이 워낙 방대하긴 하지만, 쭉 읽다 보면 컴퓨터라는 게 어떤 방식으로 작동하게 되는지 개략적으로 알 수 있을 겁니다.
감사합니다!!
컴공주님 혹시 그 책 완독하셨나요? 방학때 전공 대비로 공부해보려 하는데, 혹시 읽어보셨다면 후기 적어주신다면 감사하겠습니다