1의 보수 vs 2의 보수 : 음수는 어떻게 표현되는가?
C언어에서 정수는 어떻게 표현이 될까요? 결론부터 말하자면, 2의 보수 표현법으로 표시합니다. 그러면 이 표기법이 무엇일까요? 4bit로만 표현되는 정수 데이터가 있다고 해 봅시다. 부호가 있는 정수인 경우, 최상위 비트는 보통 부호를 표시합니다. 이 때 signed bit가 1이면 음수를, 아니라면 양수를 나타냅니다. 만약에 부호 없는 정수형이라면, 4bit를 다 쓰겠지요. 4개의 비트로 표현할 수 있는 상태값은 16개입니다. 수로 따지면 0부터 2^4-1까지입니다. 그런데 하나의 비트를 부호를 위해서 썼으니, 일단 양수에 대해서, 0, 1, 2, 3, 4, 5, 6, 7까지면 표현이 가능하겠군요. 이것들은 각각 2진수로 0부터 7까지를 나타냅니다. 음수일 때가 문제인데요. 이것을 어떻게 표현하면 좋을..
코딩/C
2019. 7. 28. 00:31
최근댓글