코딩Language(전공)
[전공_시스템프로그래밍] 정수(Integer) 부호확장
Nerdogger
2019. 9. 9. 20:34
부호확장의 목적은 w비트의 정수 x가 주어질 떄 x를 w+k 비트보다 길이가 긴 정수로 변환시키기 위함이다.
규칙은 간단하다.
x의 부호비트를 k개 복사하여 뒤에 붙여준다.
아래와 같다.
예를 들면,
Decimal | Hex | Binary | |
x | 15213 | 3B 6D | 00111011 01101101 |
ix | 15213 | 00 00 3B 6D | 00... 00111011 01101101 |
y | -15213 | C4 93 | 11000100 10010011 |
iy | -15213 | FF FF C4 93 | 11... 11000100 10010011 |
위와 같이 부호비트가 0이면 0을, 1이면 1을 확장할 비트수 만큼 채워주면 된다.
C언어에서는 이러한 부호확장을 자동으로 해준다.