컴퓨터에선 필요에 따라 자료형을 바꾼다
정수의 확장(작은 자료형 -> 큰 자료형)
- 비부호형: 앞에 추가된 공간만큼 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
반응형
'CS > 컴퓨터 구조' 카테고리의 다른 글
[컴퓨터 구조](6)[부동 소수점의 연산] (2) | 2025.01.14 |
---|---|
[컴퓨터 구조](5)[부동 소수점] (4) | 2025.01.13 |
[컴퓨터 구조](3)[정수의 표시] (0) | 2025.01.09 |
[컴퓨터 구조](2)[비트 연산] (0) | 2025.01.08 |
[컴퓨터 구조](1)[정보의 저장] (2) | 2025.01.07 |