ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 헷갈리는 보수 개념 정리
    공부/cpp 2023. 3. 7. 19:37

    보수 공부하면서 구글링했는데 사람마다 쓰는 글이 다 달라가지고 짜증난다.

     

    그래서 정리한다.

     

    먼저 보수는 2가지 뜻이 있다.

     

    하나는 일반적으로 쓰이는 보수 즉, 보충해주는 수이다.

    3에 대한 5의 보수는 2

    1000에 대한 2의 보수는 998

    1000(2)에 대한 0001(2)의 보수는 0111(2)

    1111(2)에 대한 0001(2)의 보수는 1110(2)

     

    두번째는 진법에서 쓰이는 보수이다.

    10진법에는 9의 보수와 10의 보수가 있다.

    8진법에는 7의 보수와 8의 보수가 있다.

    2진법에는 2의 보수와 1의 보수가 있다.

    60진법에는 60의 보수와 59의 보수가 있다.

     

    10진법에서

    538의 9의 보수를 구하라

    라고 나오면

    모든 자리를 

    제일 큰 수로 바꾼다.

    아라비아 숫자에서 가장 큰 수는 9이다.

    999 - 538 = 461

    538의 9의 보수가 461이다.

     

    538의 10의 보수를 구하라

    라고 나오면

    자릿수를 하나 더 늘린다. 즉

    세자리 숫자에서 네자리 숫자로 바꾼다. 즉

    1000에서 538을 뺀다.

    1000-538 = 462

    이게 10의 보수이다.

     

    8진법의 7의 보수는

    최고 숫자가 7이므로

    777(8) - 123(8) = 654(8)

    이고,

     

    8의보수는

    1000(8) - 123(8) = 655(8) 이다.

     

    그럼

    2진법도 이해가 될 것이다.

    2진법 0110의 1의 보수는

    최고숫자가 1이므로

    1111(2) - 0110(2) = 1001(2)

    이고,

     

    2의보수는

    10000(2) - 0110(2) = 1010(2)이다.

     

     

    60진법도 해보자.

    59의 보수부터 해보자.

    60진법의 한자리에서 표기할 수 있는 최고 숫자가 59이므로(아라비아 숫자에서는 한자리로 60진법을 표기할 순 한자리라고 치면...)

    59 59 59 59(60) - 48 27 36 54(60) = 11 32 23 5(60) 이다.

     

    60의 보수로 하면

    1 0 0 0 0(60) - 48 27 36 54(60) = 11 32 23 6(60) 이다.

     

    규칙성이 보이는가? n진법에서 (n-1)의 보수와 n의 보수의 차이는

    1만 더해주면 된다는 것이다.

    '공부 > cpp' 카테고리의 다른 글

    헷갈리는 용어 정리  (0) 2023.03.07
    부동소수점 정리  (0) 2023.03.07
    [컴프실] 5일차 -클래스  (0) 2023.02.23
    [컴프실] 5일차  (0) 2023.02.22
    [컴프실] 4일차  (1) 2023.02.21
Designed by Tistory.