회신: 1111 0001이 -15가 되는 계산 과정
, 도장_ 관리자님이 작성음수의 비트 패턴을 보는 법
윈도에서 계산기를 실행합니다. Windows 버전에 따라 메뉴는 차이가 있지만, Windows 10에서는 왼쪽 상단에 = 햄버거 아이콘을 클릭해서 '프로그래머'를 선택하면 프로그래머용 계산기가 됩니다.
여기서 숫자 15도 입력해보고 -15도 입력해보면서 2진수 비트 패턴을 확인할 수 있습니다.
컴퓨터의 음수 표현법
컴퓨터는 2진수를 사용하고, 음수 표현에는 2의 보수를 사용합니다.
"2의 보수 음수 표기"로 검색하면 문의한 표기 방법에 대한 설명이 많습니다. 다음 링크를 참고하세요.
간단하게 설명하자면 15의 2진수 표기를 구하고, 1은 0으로, 0은 1로 바꾸고, 1을 더하면 -15의 2진수 표기가 됩니다.
컴퓨터의 음수 표현을 비롯해서 숫자 표기(정수, 실수)는 모두 2진수로 되어 있습니다. 이는 "컴퓨터 구조"에서 설명합니다. 보통 컴퓨터 공학 2학년 전공으로 학습하게 되며 전공 교재에서 배우게 됩니다. 자세한 내용은 컴퓨터 구조론을 참고하세요.
대표적인 교재는 데이비드 패터슨의 <컴퓨터 구조 및 설계>입니다.
정수, 실수의 2진수 표기는 C 언어와 관련된 내용이 아니며 컴퓨터 구조와 관련된 문제입니다. 따라서 C 언어뿐 아니라 다른 프로그래밍 언어를 사용해도 2진수 표기는 같습니다.
보통 컴퓨터 구조 2학년 중간고사의 단골 문제로 출제됩니다.
15의 2진수 표기와 -15의 2진수 표기를 구하는 문제.
1.5의 2진수 표기와 -1.5의 2진수 표기를 구하는 문제.
따라서 이 부분의 학습은 컴퓨터 구조에서 해야 하며, C 언어의 문법과는 거리가 있습니다. 프로그래밍을 처음 배우는 입문자 수준에서 C 언어 문법과 동시에 컴퓨터 구조를 가르치는 것은 바람직하지 않습니다. 오히려 C 언어를 어렵게 만드는 원인이 됩니다.
비트 이동 연산자
비트 이동 연산자는 C 언어의 문법 요소이므로 비트 패턴이 있을 때 오른쪽 이동과 왼쪽 이동에 대해 설명합니다.
결론
비트 패턴이 궁금할 때는 프로그래머용 계산기 기능을 이용합니다. 많은 프로그래머가 이를 활용합니다.(직접 계산하는 사람도 적고, 계산법을 잘 이해하는 사람도 적습니다. 주변에 프로그래머가 있다면 -1.5를 2진수로 표기해달라고 요청해보세요. 대부분 전공시험이 끝나면 잊어버립니다! 전공시험이라면 "-118.274를 2진수로 표기하시오"가 출제되겠지만!).
비트 패턴은 임베디드, 펌웨어 개발자가 아니면 거의 사용하지 않기 때문입니다. 프로그래밍 입문이 목표라면 계산기로 충분합니다. 컴퓨터 공학 전공이나 임베디드 개발자가 목표라면 컴퓨터 구조를 학습하면 됩니다.
즐겁게 C 언어에 입문하세요.