언어 자료구조 알고리즘/디딤돌 C언어

14. 부호있는 정수 표현 - 2진 보수 방식

언제나휴일 2016. 1. 1. 11:48
반응형

14. 부호있는 정수 표현 - 2진 보수 방식


 

 

마지막으로 C언어에서 사용하는 2진 보수 방식을 알아봅시다.
 
2진 보수를 이용할 때도 첫번째 비트가 0일 때는 다른 방법과 같아요.
다른 부분은 첫번째 비트가 1일 때 부호있는 정수를 나타내고 나머지 비트를 2진 보수를 취한 값이 크기로 판단한다는 것이죠.
 
2진수를 2진 보수를 취할 때는 1진 보수를 계산한 후에 1을 더합니다.
 
예를 들어 8비트의 메모리에 10010001 값이 들어있다면 첫 번째 비트가 1이므로 부호있는 정수죠.
그리고 나머지 비트인 0010001 1진 보수를 취하면 1101110이예요.
2진 보수는 1진 보수를 계산한 값에 1을 더하므로 11011111이죠.
따라서 크기가 64+32+8+4+2+1 이므로 111이며 부호가 있어서 -110입니다.
 
그리고 8비트의 메모리에 00010001 값이 들어있다면 첫 번째 비트가 1이므로 부호없는 정수예요.
나머지 비트인 0010001은 크기를 나타내어 17을 의미해요.
이것은 다른 방식과 차이가 없죠.
 
 2진 보수 방식에서 8비트(1바이트)로 표현할 때 01111111이 제일 큰 정수이고 10000000이 제일 작은 정수예요.
 
2진 보수 방식을 사용하면 하나의 0만 있어서 연산 처리가 쉬워요.
이러한 이유로 C언어에서는 2진 보수 방식을 사용하고 있어요. 

◈ 기본 연습
1. 8비트의 메모리에 10110111값이 있고 2진 보수 방식일 때 의미하는 값을 계산하시오.
 
2. 8비트의 메모리에 00110111값이 있고 2진 보수 방식일 때 의미하는 값을 계산하시오.
       
3. 8비트의 메모리에 10진수 -116을 2진 보수 방식으로 나타내시오.    
  



동영상 강의

[C언어 동영상 강의] 12. 메모리에 부호있는 정수 표현 방식 - 부호비트 필드 방식 13. 1진 보수 방식 14. 2진 보수 방식

 

정답

[정답] 디딤돌 C언어 14.부호있는 정수 표현-2진 보수 방식

반응형