수론(number theory)에서의 정수

정수

  • 정수(integer)는 0을 기준으로 수직선(number line)을 그었을 때, 자연수(natural number)/양수와 이에 대비되어 양수의 반대편에 위치하는 음수로 나뉘는데 이때 음수와 0과 자연수를 합친 집합을 정수라고 부른다

자연수

  • 자연수란, 무한히 이어지는 { 1, 2, 3, … }의 집합이다
  • 자연수는 뭔가를 ‘셀(헤아릴)’ 필요성 때문에 발생했다
  • 뭔가 세려면 세어야 할 대상이 하나라도 존재해야 한다
  • 이때문에, 자연수는 1부터 시작한다
  • 요컨대, 자연수의 본질은 계수성(計數性)에 있다

음수

  • 음수(negative number)는 0을 중심으로 양수와 반대쪽에 있는 수이다
  • 여기서 양수(positive number)는 자연수이다
  • 요컨대, 음수의 본질은 양수의 반대쪽이라는 ‘방향성’에 있다

컴퓨터에서의 정수

  • 수론에서의 정수는 무한대에 해당한다
  • 그러나 컴퓨터에서 메모리는 제한되어 있기 때문에 무한대를 표현할 수 없다
  • 결국, 컴퓨터는 제한된 범위의 정수만을 나타낼 수 있다

정수 표현 방법

부호 없는 정수(unsigned integer)

  • 부호 (‘+’, ‘-‘)가 없다
  • 따라서 음수를 표현할 수 없다
  • n bits가 주어지면 0부터 2^(n-1)까지 표현할 수 있다
  • 예컨대, 1 byte인 8 bits가 주어지면 0부터 255까지 표현할 수 있다
  • 수가 주어지면 2진수로 변환한 뒤에 n 비트(bits)에 할당
  • 만약, 2진수로 변환된 값의 자릿수가 주어진 n보다 크면 오버플로우(overflow) 현상이 발생하여 데이터가 손실된다

부호 있는 정수(signed integer)

  • 최상위 비트(MSB, Most Significant Bit)를 부호 비트로 사용해 0을 양수, 1을 음수로 표현한다
  • 나머지 (n - 1) 비트를 가지고 수의 크기를 표현한다
  • 부호 있는 정수에 있어 양의 정수를 표현하는 방법은 모두 같다
  • 그러나, 부호 있는 정수에 있어 음의 정수를 표현하는 방법은 다음 3가지로 나뉜다
    • 부호화-크기
    • 1의 보수
    • 2의 보수

부호 있는 정수의 음의 정수 표현 방법

컴퓨터에서 일반적으로 사용하는 음의 정수 표현 방법은 2의 보수 방법이다.

부호화-크기

  • 절대값으로 음수를 표현한다
  • 표현 범위: -(2^n-1 - 1) ~ +(2^n-1 - 1)
  • +0, -0처럼 0이 두 개 존재
  • -124를 표현한다고 했을 때, 124가 01111100인 경우,
  • 최상위비트로 부호를 표현한 뒤 절대값을 표현
  • 따라서, -124는 1111100에 해당

1의 보수

  • 양수에 대한 보수로서 음수를 표현한다
  • 표현 범위: -(2^n-1 - 1) ~ +(2^n-1 - 1)
  • +0, -0과 같이 0이 두 개 존재
  • -124를 표현한다고 했을 때, 124가 01111100인 경우,
  • 0은 1로, 1은 0으로 치환. 단, 부호 비트는 건드리지 않는다
  • 따라서, -124는 10000011에 해당

2의 보수

  • (1의 보수 + 1)로 음수를 표현한다
  • 표현 범위: -2^n-1 ~ +(2^n-1 - 1)
  • 0이 단 하나만 존재 (-0이 사라진다)
  • -124를 표현한다고 했을 때, 124가 01111100인 경우,
  • 우선 -124를 1의 보수법으로 표현한 뒤에 1을 더한다
  • 따라서, -124는 10000100에 해당
<끝>