주요 차이점 : 부호있는 char과 unsigned char은 C 프로그래밍에서 사용되는 두 가지 데이터 유형입니다. 부호없는 및 서명 된 문자는 모두 문자를 저장하는 데 사용되며 8 비트 영역으로 구성됩니다. 부호없는 문자는 0에서 255 사이의 값을 가지지 만 부호가있는 문자는 -128에서 127 사이의 값을가집니다 (8 비트 바이트 및 2의 보수가있는 시스템에서).
C90은 C가 char로 서명되고 서명되지 않은 키워드를 사용할 수 있도록했습니다. 작은 정수 값을 처리 할 때만 사용된다는 점에 유의해야합니다. 부호있는 char 및 unsigned char은 모두 16 비트 시스템에서 8 비트 바이트입니다. 그들은 주로 그들에 의해 대표되는 범위가 다릅니다. 부호없는 char의 범위는 0에서 255까지이며 char 또는 signed char의 크기는 -128에서 127 사이입니다.
char의 int 값으로의 변환은 C에 의해 자동으로 수행됩니다. 그러나 결과는 음수가 될지 여부를 결정하는 기계에 따라 달라집니다. 대문자 A는 정수 값 65와 같습니다.
서명되지 않고 서명 된 용어는 char와 함께 사용되며, 이 8 비트의 내용이 정수로 해석되면 이러한 용어가 약간의 차이를 만들 수 있음을 의미합니다. 문자 데이터 형식은 기본적으로 unsigned 형식입니다. 그러나 C ++ 및 ANSI C 모드에는 서명 된 또는 서명되지 않은 char로 명시 적으로 선언 할 수있는 옵션이 있습니다. 서명되지 않은 char에서는 8 비트가 데이터 비트로 사용되는 반면 signed char의 메모리 표현에서는 1 비트 (최상위 비트)가 부호있는 비트에 사용되고 7 비트가 데이터 비트로 사용됩니다. 부호있는 비트가 0이면 숫자가 양수임을 나타냅니다. 부호있는 비트가 1이면 숫자는 음수입니다.
부호있는 문자와 부호없는 문자의 비교 :
서명 된 문자 | 부호없는 문자 | |
범위 | -128 ~ +127 | 0 ~ 255 |
전형적인 비트 폭 | 1 바이트 | 1 바이트 |
예 (x = 10000010) | 부호있는 문자 x = -2 | 부호없는 char = 82 |
대표 | 1 비트 = 부호있는 비트 7 비트 = 데이터 비트 | 8 비트 = 데이터 비트 |
선언 | 부호있는 문자 b | 부호없는 문자 |