부호가 있는 경우는 부호비트의 값을 확장되면서 추가되는 모든 비트에 기록하면 된다. 예를들어 8비트 데이터인 0x80이 16비트로 확장되면 0xFF80이 된다. 이것이 부호 확장이다.
1000 0000 --> 1111 1111 1000 0000
부호가 없는 경우에는 단순히 0을 확장되면서 추가되는 모든 비트에 기록하면 된다. 이것이 0 확장이다.
0100 0001 --> 0000 0000 0100 0001
확장은 새로운 비트 필드가 추가되는것이므로 아무런 문제가 없는 반면에 축소는 얘기가 조금 달라진다. 예를들어 int(4바이트)형 데이터를 short int(2바이트)형 데이터로 축소 할 경우 데이터가 표현하는 수는 short int(2바이트) 타입이 표현 할 수 있는 수치내에 있어야 한다. 그렇지 않다면 데이터가 손실된다.

comments
comments rss (+댓글 쓰러가기)