개념 창고

Signed & Unsigned 정의 및 차이

달마루 2024. 1. 31. 18:03

언어들에서 어렵지 않게 자주 접하게 되는 이 keyword,
개념을 알아보겠습니다.

쉽게 이해하는 방법은 두 가지가 있습니다.
1. SIGN => 부호가 있다.
    UNSIGN => 부호가 없다.
즉, '-' 가 있냐, 없냐로 이해하기

2. '음수까지 표현하느냐, 음수를 표현하지 않느냐' 로 이해하기

  -  signed : 양수, 음수가 있는 수 (부호를 가지는 값, 양수/음수 구분 O)
  -  unsigned : 양수만 있는 수 (부호를 갖지 않는 값, 양수/음수 구분 X)

부호를 보는 한 MSB(Most Significant Bit)를 부호로 사용하게 되는데,
그 부분을 숫자의 부분으로 활용하여 음수를 표현하지 못하는 대신,
양수의 범위가 늘어나는 것이다.

ex)
signed char => -128~127의 범위 표현 가능
unsigned char => 0~255의 범위 표현 가능

signed int => -2,147,483,648 ~ 2,147,483,647 의 범위 표현 가능
unsigned int  => 0 ~ 4,294,967,295 의 범위 표현 가능

참조용으로 Java에서 구현하는 방법 까지 올려둡니다.
https://nextmoveon.tistory.com/343

 

[Java] Unsigned int 구현 방법

자바에서는 C와 같은 언어에서처럼 명시적으로 unsigned int를 지원하지 않습니다. 자바에서는 모든 정수 타입이 부호를 가지며, 음수와 양수를 모두 표현할 수 있습니다. 그러나 구현을 한다면, 버

nextmoveon.tistory.com