일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- vector
- 리버싱
- 암호학
- CISCO
- 네트워크
- dreamhack
- Reversing
- vlan
- Java
- 온프레미스
- 머신러닝 프로세스
- Screening Router
- 머신러닝
- 크롤러
- bastion host
- docker
- abex'crackme
- 인공지능
- Python
- AI
- Repository
- STP
- Firewall
- 스위치
- AWS
- Mac
- RIP
- 자바
- cmd
- 라우터
- Today
- Total
Haekt‘s log
C 언어 unsigned 와 signed 의 차이 본문
코드를 보며 이해하자.
실행 결과 -
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' 카테고리의 다른 글
[codeup] c언어 기초 100제/ 1010~1017, 1051~1052, 1063~1064, 1068~1070번 (0) | 2022.09.20 |
---|---|
포인터 변수와 %p주소 형식 지정자 with 배열 (1) | 2022.09.20 |