부호 없는 이진 정수 | 부호 없는 이진 정수
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
2의 보수 부호 있는 정수 | 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
- -하나 : 1111 1111 $\ldots$ 1111
- 가장 작은 숫자: 1000 0000 $\ldots$ 0000
- 가장 큰 수: 0111 1111 $\ldots$ 1111
부호 있는 부정 | 캐릭터 변경
$$x+\overline{x}=1111\ldots1111_2=-1$$
$$\overline{x}+1=-x$$
문자 확장 | 확장에 서명
문자 확장은 숫자 값을 유지하면서 숫자를 나타내기 위해 더 많은 비트를 사용하는 것입니다.
MIPS 명령어 세트
- addi: 더하기 연산으로 즉시 값을 확장합니다.
- lb, lh: 로드된 바이트 또는 하프워드를 확장합니다.
- beq, bne: 시프트를 늘립니다.
부호 비트를 왼쪽에 씁니다.
- cf 부호 없는 값은 이중 0으로 확장됩니다.
예를 들어 8비트에서 16비트로
- +2: 0000 0010 → 0000 0000 0000 0010
- -2: 1111 1110 → 1111 1111 1111 1110