2010. 10. 17. 18:29
signed 와 unsigned 공부2010. 10. 17. 18:29
signed 와 unsigned
변수를 선언할 때 아무것도 안 적고 자료형(Data type)을 바로 쓴다면 signed가 앞에 적혀 있다고 보면 된다.
ex) char cNum1
에서 char가 자료형, cNum1 이 변수이다.
char 앞에는 'signed'가 생략되어 있다. 그대로 적어줘도 동일한 코딩이다.
unsigned 를 표현하고 싶다면 자료형 앞에 'unsigned'라고 넣어주면 된다.
signed는 -128 ~ 127 까지의 양수와 음수 둘다(정수) 쓰겠다는 명령이고
unsigned 는 0 ~ 255 까지 범위의 양수만 쓰겠다는 명령이다.
만약 127을 입력하고 그걸 출력한다면 둘다 127까지는 범위안이기 때문에 동일하게 출력된다.
대신 128을 입력하게 되면 signed는 범위를 넘어가기 때문에 비트단위 계산으로 127의 다음숫자인 -128, unsigned는 당연히 범위 안이기 때문에 그 결과 그대로 출력된다.
혹시나 255를 입력하게 되면 signed는 -1이 , unsigned 는 범위안이기 때문 255 그대로 출력한다.
char(1바이트)와 short(2바이트)의 입력할 수 있는 최대값을 구하고 싶다면
unsigned char
unsigned short 에서 -1을 입력해주면 된다.
보면 short의 최대값은 65535 , char의 최대값은 255인 것을 확인할 수 있다.
0부터 시작한다고 보았을 때 char는 0부터 255까지 총 256개,
short는 0부터 65535까지 65536개의 숫자 입력이 가능하다.
char = 1바이트 = 8비트 = 2의 8승값 = 256
short = 2바이트 = 16비트 = 2의 16승값 = 65536
이라고 이해해도 무방하다.
그렇다면 int 는 4바이트이기 때문에
int = 4바이트 = 32비트 = 2의 32승값 = 4,294,967,296
int 로 자료형을 선언했을 때 4,294,967,296 가지로 범위가 매우 넓음을 알 수 있다.
'공부' 카테고리의 다른 글
short 의 최대, 최소값 구하기 (0) | 2010.10.17 |
---|---|
아스키 코드 / 빠르게 아스키 코드 확인법 Alt + 숫자 (2) | 2010.10.17 |
보수와 2진법에서 음수표현법 (0) | 2010.10.17 |
진법과 계산법 (0) | 2010.10.17 |
vmware 공유폴더 설정하기 (윈도우, 리눅스와 공유폴더 만들기) (0) | 2010.10.17 |