Unsigned Binary Integers | 부호 없는 이진 정수
n비트의 수가 주어지면 다음과 같다.
$$x= x_{n-1}2^{n-1}+x_{n-2}2^{n-2}+ \ldots +x_12^1+x_02^0$$
범위 : 0 ~ $2^n-1$
32비트를 사용하면, 0 ~ +4,294,967,295
2s-Complement Signed Intergers | 부호 있는 2의 보수 정수
n비트의 수가 주어지면 다음과 같다.
$$x=- x_{n-1}2^{n-1}+x_{n-2}2^{n-2}+ \ldots +x_12^1+x_02^0$$
범위 : $-2^{n-1} ~ 2^{n-1}-1
32비트를 사용하면, -2,147,483,648 ~ +2,147,483,647
일부의 특정한 경우
- 0 : 0000 0000 $\ldots$ 0000
- -1 : 1111 1111 $\ldots$ 1111
- 가장 작은 수 : 1000 0000 $\ldots$ 0000
- 가장 큰 수 : 0111 1111 $\ldots$ 1111
Signed Negation | 부호 바꾸기
$$x+\overline{x}=1111\ldots1111_2=-1$$
$$\overline{x}+1=-x$$
Sign Extension | 부호 확장
부호 확장은 더 많은 비트를 사용해서 숫자 값을 유지하면서 숫자를 표시하는 것이다.
MIPS의 명령 집합
- addi : 덧셈 연산으로 즉시 값을 확장한다.
- lb, lh : 불러온 바이트나 하프워드를 확장한다.
- beq, bne : 변위(displacement)를 확장한다.
부호 비트를 왼쪽으로 쓴다.
- c.f. 부호 없는 값은 0을 복제해서 확장한다.
예를들어, 8비트 ~ 16비트
- +2 : 0000 0010 → 0000 0000 0000 0010
- -2 : 1111 1110 → 1111 1111 1111 1110