코드를 보며 이해하자.
실행 결과 -
unsigned : 양수형만 사용해서 사용가능한 메모리 크기를 배로 가져갈 수 있음
signed : 양수와 정수 모두 사용가능한 자료형
결과를 보면 unsigned , signed 둘 모두 양수 사용가능하기에 1을 넣었을때에는 출력이 가능하고,
음수는 signed 만 사용가능하기 때문에 unsigned 에는 -1 이 아닌 쓰레기값이, signed 에는 -1 이 들어간 것을 볼 수 있다.
부호비트를 사용하기 때문에 signed 는 unsigned 에 비해서 사용 가능한 비트 수가 줄어든다.
반대로 unsigned 는 부호 비트없이 모두 사용하기 때문에 사용가능한 비트 수가 늘어난다.
부호비트란?
비트의 가장 앞 비트를 사용하여 1 일때 - , 0일때 + 임을 표현하는 비트이다.
그래서 unsigned 를 사용하면 부호 비트가 필요없기 때문에 1개의 비트를 더 사용할 수 있게 된다.
사용법
사용방법은 위의 코드와 동일하게, 변수의 자료형 앞에 선언해서 사용한다.
unsinged int test;
singed int test;
보통 singed 는 기본으로 선언되어 있기 때문에, 따로 선언을 하지 않아도 된다.
// 보통 사용자가 입력하는 경우를 제외하고는 거의 대부분 양수만을 사용하기에 unsigned 를 더 자주 사용한다.
// 만약 음수를 unsigned 자료형에 넣을경우 쓰레기 값(?)이 들어간다
// signed 는 오류를 처리할 때마다 사용자가 음수를 입력했는지, 양수를 입력 했는지 체크해야하는 불편함이 생긴다.
잘못된 점이 있다면 말씀 해 주시면 감사하겠습니다.
'C 언어 문제' 카테고리의 다른 글
C 언어) 자료형의 종류 (0) | 2022.01.24 |
---|---|
포인터 변수와 %p주소 형식 지정자 with 배열 (0) | 2022.01.01 |
구조체 (0) | 2021.06.09 |
배열 (0) | 2021.06.02 |