코드를 보며 이해하자.

실행 결과 -

unsigned : 양수형만 사용해서 사용가능한 메모리 크기를 배로 가져갈 수 있음 

signed : 양수와 정수 모두 사용가능한 자료형 

 

결과를 보면 unsigned , signed 둘 모두 양수 사용가능하기에 1을 넣었을때에는 출력이 가능하고,

음수는 signed 만 사용가능하기 때문에 unsigned 에는 -1 이 아닌 쓰레기값이, signed 에는 -1 이 들어간 것을 볼 수 있다.

 

 

부호비트를 사용하기 때문에 signed 는 unsigned 에 비해서 사용 가능한 비트 수가 줄어든다.

반대로 unsigned 는 부호 비트없이 모두 사용하기 때문에 사용가능한 비트 수가 늘어난다.

 

 


부호비트란?

 

https://ehpub.co.kr/12-%EB%B6%80%ED%98%B8%EC%9E%88%EB%8A%94-%EC%A0%95%EC%88%98-%ED%91%9C%ED%98%84-%EB%B6%80%ED%98%B8%EB%B9%84%ED%8A%B8-%ED%95%84%EB%93%9C/

 

비트의 가장 앞 비트를 사용하여 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

+ Recent posts