ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2진수의 정수 표현 방식(부호절대값, 1의보수, 2의보수)
    ETC/자료구조 2018. 8. 20. 12:18


    보수란 쉽게 말해 보충해주는 수라고 생각하면 편하다 


    예를들어 3에 대한 10의 보수는 7이고  5에대한 16의 보수는 11이된다.



    2진수의 정수 표현은 총 3가지다~


    * 부호절대값의 표현

    너무쉽다~ 

    최상위 비트 MSB(Most Siginificant Bit)에 부호를 표시하고 나머지 비트에 표현할 2진수의 값을 넣어주면 끝난다.

    ex)

    0 0 0 1 0 1 0 1 = 21

    1 0 0 1 0 1 0 1 = -21


    * 1의 보수

    굉장히 간단하다

    양수는 위의 부호절대값처럼 표현하면 된다.

    보수를 취하고싶은 수를 모든비트가 1인 수에서 빼면된다.


    2진수를 1의보스형식으로 변환하여 표현하면 된다.

    1바이트를 이용해서 2진수를 표현하는 경우 1의 보수를 만드는 방법은 다음과 같다.


    -21을 1의 보수 형식을 취한다고 하면

        1  1  1  1  1  1  1  1

    -  0 0 0 1 0 1 0 1


       1 1 1 0 1 0 1 0 이 된다.


    이때 제일 첫번재 비트 MSB는 부호를 나타낸다.

    1일 경우 음수이며 0일경우 양수가 된다.



    * 2의 보수 

    양수는 위의 부호절대값처럼 표현하면 된다.

    음수의 경우에는 2진수를 2의 보수로 변환하여 표현하면된다.
    -> 1의 보수를 취한뒤 1을 더하면 2의보수다!

      -21을 2의 보수 형식을 취한다고 하면

        1  1  1  1  1  1  1  1

    -  0 0 0 1 0 1 0 1


                             +1

       1 1 1 0 1 0 1 1 이 된다.



    ~> 결론!!

    * 부호절대값 형식의 경우 사용하기에는 편리해 보이나 막상 컴퓨터에서 사용하게 되면 덧셈기와 뺄셈기를 따로 구현해야함으로 사용되지않는다.


    * 1의 보수의 경우에도 절대값 계산이 따로 필요하지 않고 음수간의 덧셈으로 뺄셈을 할 수 있지만 +0(00000000) 과 -0(11111111)이

      존재하게되는 논리적 오류가 발생된다는 단점이 있다.


    * 2의 보수 -0을 제거했기 때문에 덧셈 연산에서 처리를 더 단순화시키게 되며 가장 단순하면서 효율적임으로 컴퓨터 시스템에서 사용되고 있다!


    반응형

    'ETC > 자료구조' 카테고리의 다른 글

    10진수의 표현  (2) 2018.08.20

    댓글

Designed by Tistory.