unsigned는 정수 자료형에서만 쓸 수 있는 방식이다.
제일 작은 단위인 1바이트를 표현 할 수 있는 char의 경우,
-128~127 까지 데이터를 표현할 수 있다.
그런데 에를들어, 내가 데이터에 130을 저장하고싶다면?
char는 최대 127까지만 표현할 수 있으니까
2바이트를 사용해야하나?
그렇다기엔 2바이트는 최댓값이 32,767 인데?
데이터에 비해 너무 거대한 메모리를 사용하게 된다.
이럴 때!!
좀 더 효율적으로 메모리를 알차게 사용하기 위해 unsigned를 사용하면 된다.
unsigned char는 절댓값이 char와 똑같이 256이지만, (1바이트=8비트=2의 8승)
범위를 음수가 아닌 0부터 시작해서, 양수만 사용하기 때문에
0~256 까지로 범위가 이동을 하게 된다.
그러면 130은 256이하니까, 굳이 메모리를 늘려 2바이트를 쓰지 않아도
똑같이 1바이트 만으로도 130이라는 데이터를 저장할 수 있다.
이것이 unsigned 를 쓰는 이유다.
'C언어' 카테고리의 다른 글
로또 - 사용자가 뽑는 코드 - 숫자인지 아닌지 판별 (0) | 2025.03.15 |
---|---|
< 조건문: if~else > (0) | 2025.03.09 |
자료형(data type) (0) | 2025.03.09 |
진수 (0) | 2025.03.07 |
아스키 (1) | 2025.03.07 |