CS/컴퓨터 구조

[컴퓨터 구조](4)[정수의 연산]

황올뱀 2025. 1. 10. 16:08

컴퓨터에선 필요에 따라 자료형을 바꾼다

 

정수의 확장(작은 자료형 -> 큰 자료형)

  • 비부호형: 앞에 추가된 공간만큼 0을 추가
  • 부호형: 맨 앞 부호 비트를 추가된 공간만큼 추가

정수의 절삭(큰 자료형 -> 작은 자료형)

  • 비부호형, 부호형: 맨 앞을 자르고 (비부호형)재번역
  • 특히 부호형은 절삭 시 값이 바뀌는 것에 주의 (물론 비부호형도 바뀌긴 함)
  • 예시) 비부호형 1010(10)을 3자리로 절삭: 010(2) (값 바뀜)
  • 예시) 부호형 1010(-6)을 3자리로 절삭: 010(2) (값 바뀜)

정수의 덧셈

  • 일반적으로 덧셈하듯이 자리수가 넘어가면 올림을 한다.
    (w자리 비트 + w자리 비트 = w+1자리 비트 필요)
    이때, 비트 개수가 정해져있으므로 맨 앞에 올림 된 비트는 잘린다.
  • 비부호형: 자동 행갈이(오버플로우로 버림)
    (4비트 덧셈 결과) 0, 1, 2, ..., 16, 0, 1, ...
  • 부호형: 똑같이 넘어가는 상위 비트는 버림,
    표현할 수 있는 범위를 넘어가면 음수 -> 양수(Negative Overflow),
                                                       양수 -> 음수(Positive Overflow)로 바뀌어버림
    (4비트 덧셈 결과 NegOver): ..., -7, -8, 7, ...
    (4비트 덧셈 결과 PosOver): ..., 6, 7, -8, ...

정수의 곱셈

  • 곱 또한 덧셈과 마찬가지로 연산 후 자릿수가 원래 비트 자리수보다 커질 수 있음
    • 비부호형: w자리 x w자리 = 2w자리
    • 부호형: w자리 x w자리 (음수)= 2w-1자리, w자리 x w자리 (양수)= 2w자리
  • 결과를 유지하기 위해 자료의 크기를 소프트웨어적으로 늘릴 수 있음
  • 비부호형 표준 곱셈: 곱하고 윗자리 비트들 무시
  • 부호형 표준 곱셈: 곱하고 윗자리 비트들 무시 (비부호형과 결과가 다를 때가 있음(비트는 같은데 해석에서...))

시프트로 곱셈, 나눗셈 연산

  • 2진수에서 각 비트들은 2의 n승 꼴이다.
    따라서 비트들을 k 만큼 시프트한다면 곱하기 2^k, 나누기 2^k가 될 수 있다.
  • 예시) 0110(6)<<1 = 1100(12)
  • 예시) 0110(6)>>1 = 0011(3)
728x90
반응형