Numeral system에서는 같은 digit(숫자기호)이라도 어느 자리에 놓여있느냐에 따라 크기가 다르며, 해당 자리에 따라 다른 크기는 base (or raidx)에 의해 결정된다.
은 Base를 의미하며 다음과 같이 표기된다.

위의 값(value)는 다음과 같다.

자주 상용되는 진수
R=10: 10진수
R=16: 16진수
R=8: 8진수
R=2: 2진수
컴퓨터에서는 대부분 base-2 system (이진수)를 이용하여 positive integer를 표시한다
컴퓨터는 2진수를 사용하지만, 인간에게 2진수는 너무 길고 읽기 어렵기 때문에, 기술문서 등에서는 2진수를 직접 기재하기보다는 2진수로 변환이 쉬우면서도
사람이 좀 더 읽기 쉬운 Hexadecimal Representaion (Hex)을 많이 사용 한다.
또는 Octal Representation(Oct, 8진수)로 표현하는 경우도 있지만, 주로 Hex로 표기된다. 2진수 표현에서 4자리씩 잘라서 처리(nible)하면 쉽게 Hex로 변환된다 (3자리씩 자르면, Oct).
2진수를 이용한 8진수 표현
2진수를 이용한 16진수 표현
변환표
Complement(보수): 기준수 A를 정했을 때, 임의의 수 m에 대한 complement m'은 A에서 m을 빼서 m'이 되는 수를 말함.(예를 들어 이진수의 경우, A=1이 됨.)
1's complment을 구하고 여기에 1을 더한 값이다.
+0과 -0의 표현이 하나이기 때문에 하나의 표현을 더 가진다.
1워드가 r비트인 경우, 정수 표현 범위
부호와 절댓값 표현: -2^r - 1~ 2^r + 1
1의보수: -2^r - 1~ 2^r + 1
2의보수:: -2^r ~ 2^r + 1
1's complement와 2's complement의 경우, 덧셈만으로 뺄셈의 구현이 가능하다.
a에서 b를 뺀다 할때 b를 빼는게 아닌 -b를 더하는 것으로 연산하면 b에 보수를 취하여 더하면 값이 나온다.
여기서 1's complement와 2's complement 사이에 차이가 있는데
1's complement
해당 MSB에서 carry out 을 LSB에 더해주어야 한다.
2's complement
해당 MSB에서 carry out 을 뺀 값 그대로다.
처리가능한 범위를 넘어서는 연산 결과가 발생하는 경우를 가르킨다. computer에서 overflow 발생시 condition code register(CCR)의 overflow에 해당하는 bit가 1로 설정된다. 즉 MSB에서 발생한 carry 값이 바로 overflow bit임
Overflow가 발생하는 연산의 예
MSB비트에서 올라온 발생한 올림값과 MSB+1비트에서 올라온 값이 다르면 Overflow
처리가능한 범위보다 작은 연산 결과가 발생하는 경우.
Underflow연산의 예