부호 확장(sign extension)과 제로 확장(zero extension)


CPU에서 bit를 확장할 때(ex. 8bit를 32bit로 확장) 부호 확장 또는 제로 확장이 사용된다. 부호 확장과 제로 확장이 어떻게 동작하는지 알아보자.

부호 확장을 알려면 부호 있는 수의 표현법인 2의 보수를 알아야 한다. 아래 포스팅을 참고하자.

부호 확장(sign extension)

부호 있는 수(signed number)를 확장할 때 사용하며, 최상위 bit의 값을 확장하는 bit에 다 넣어주면 된다.

아래는 8bit의 부호 있는 수 +1, -1을 부호 확장한 예다.
부호 있는 수 8bit 2진수를 32bit로 부호 확장
+1
                              0000_0001
0000_0000 0000_0000 0000_0000 0000_0001
-1
                              1111_1111
1111_1111 1111_1111 1111_1111 1111_1111

제로 확장(zero extension)

부호 없는 수(unsigned number)를 확장할 때 사용하며, 확장하는 bit에 0을 다 넣어주면 된다.

아래는 8bit의 부호 없는 수 +1, +255을 제로 확장한 예다.
부호 없는 수 8bit 2진수를 32bit로 제로 확장
+1
                              0000_0001
0000_0000 0000_0000 0000_0000 0000_0001
+255
                              1111_1111
0000_0000 0000_0000 0000_0000 1111_1111

* Feedback은 언제나 환영합니다.

Comments