2.3.1 비부호형 덧셈
$0 \leq x, y < 2^{\omega}$인 변수 $x, y$에 대해
$+^{u}_{\omega}$은 $x+y$ 정수 합을 $\omega$비트 길이로
절삭한 다음 다시 비부호형 정수로 나타내는 연산으로 정의.
(ex.
8비트 표현이 10000000인 비부호형 정수 두 개를 합하면 비트
9개로 100000000으로 나타낼 수 있다. 이를 다시 8비트로
절삭하면 00000000이 되고 비부호형 정수값은 0이 된다.)
법칙: 비부호형 덧셈(Modular 덧셈)
$0
\leq x, y < 2^{\omega}$인 x, y에 대해 다음이 성립.
\(<br/>x
+^{u}_{\omega} y =<br/>\begin{cases}<br/>x + y, & x +
y < 2^{\omega} \mbox{ Normal} \\<br/>x + y - 2^
{\omega}, & 2^{\omega} \leq x + y < 2 ^{\omega + 1}
\mbox{ Overflow}<br/>\end{cases}<br/>\)
(두번째
케이스에서 $2^\omega$만 빼는 것은 $0 \leq x + y \leq
2^{\omega + 1} - 2$이어서 $x + y < 2^{\omega + 1}$이기
때문 )
‘비부호형’ 덧셈에서 오버플로우가 발생했는지 알기
위해서는 다음과 같은 방법 사용 가능.
법칙:
비부호형 덧셈에서 오버플로우 검출
$0 \leq x, y \leq
UMax_{\omega}$인 x, y에 대해 $s \doteq x +^{u}_{\omega}
y$라고 정의. $s < x$이거나 $s<y$일 때만 $x+y$는
오버플로우를 발생시킨다.
$ + ^ {u} _ {\omega} $에 대해 역원을 생각해 보자. 모든 $x$에
대해 $ - ^ {u} _ {\omega} x + ^ {u} _ {\omega} x = 0 $인 $ -
^ {u} _ {\omega} x$값이 반드시 존재.
법칙:
비부호형 비트반전 (negation)
for any number $x$ such
that $0 \leq x < 2 ^ {\omega}$, its $\omega$-bit unsigned
negation $- ^{u} _ {\omega} x $ is given by the following
\(<br/>-
^ {u} _ {\omega} x =<br/>\begin{cases}<br/>x, & x = 0
\\<br/>2 ^ {\omega} - x, & x > 0<br/>\end{cases}<br/>\)
2.3.2 2의 보수의 덧셈(Two’s-Complement Addition)
이전과 비슷하게 $\omega$비트로 절삭하는 방법을 쓰지만
modular 덧셈과 수학적으로 유사하지는 않음.
법칙:
2의 보수의 덧셈
$-2^{\omega - 1} \leq x, y \leq
2^{\omega - 1} - 1$의 범위에 있는 정수 $x, y$에 대해 다음과
같이 정의.
\(<br/>x + ^ {t} _ {\omega} y =
\begin{cases} x + y - 2 ^ {\omega} , & 2 ^ {\omega - 1}
\leq x + y \mbox{ Positive overflow} \\<br/>x + y, & -
2 ^{\omega - 1} \leq x + y < 2 ^{\omega - 1} \mbox {
Normal} \\<br/>x + y + 2 ^{\omega}, & x + y < - 2
^{\omega - 1} \mbox { Negative overflow}<br/>\end{cases}<br/>\)
두
개의 $\omega$비트 2의 보수 합은 비부호형 합과 동일한
비트수준 표시를 가짐.
법칙: 2의 보수 덧셈에서 오버플로우 감지
$TMin_{\omega} \leq x, y \leq TMax_{\omega}$인 $x$,
$y$에 대해서 $s \doteq x + ^ {t} _ {\omega} y $라고 정의.
그러면 $x > 0, y > 0, s \leq 0$인 경우에만 양의
오버플로우. $x < 0, y < 0, s \geq 0$인 경우에만 음의
오버플로우.
2.3.3 2의 보수에서의 비트반전(negation)
법칙: 2의 보수 비트반전
$TMin_{\omega}
\leq x \leq TMax_{\omega}$인 모든 $x$에 대해, 대응하는 2의
보수 비트반전 연산 $- ^ {t} _ {\omega} x$는 다음과 같은
식으로 나타낼 수 있음.
\(<br/>- ^ {t} _ {\omega} x
=<br/>\begin{cases}<br/>TMin_{\omega}, & x =
TMin_{\omega} \\<br/>-x, & x > TMin_{\omega}<br/>\end{cases}<br/>\)