Char

 

C언어에서 Char는 보통 8비트를 쓴다. 0000 0000 ~ 1111 1111까지 표현한다는 말

Only 양수로(unsigned) 포현하면 0~255(2의 8승), 음수도 표현하면(signed) -128 ~ 127까지이다.

 

보통 char의 디폴트 값은 signed 이나 그 보통은 컴파일러에 따라 다르다. 그러면 내 상황에서 signed인지 unsigned인지 어떻게 아느냐?

포큐아카데미

MIN값에서 -128이면 내 기본값은 signed이다. 왜냐 최소값이 -128이니깐.

 

 

INT

 

C언어 표준에 따르면 int값은 32bit가 아니라 최소 16비트 그리고 short 크기 이상인 정수형이다.

 

C언어에서 int는 기본 정수이다. 그래서 int를 기준으로 short, long이 존재한다. int 보다 작거나 크거나

CPU에게 '정수 처리해'라고 하면 CPU가 편하게 처리 할 수있는 크기여야 한다. 그 크기란 것은 CPU의 산술논리장치가 사용하는 기본 데이터이다. 이 데이터를 워드라고 하고 그 크기를 워드 크기라 한다. 워드 크기는 레지스터 크기랑 같다. 그래서 내가 사용하는 CPU에 따라 다르고 예전에는 16bit 컴퓨터를 많이 사용해서 최소 16비트 이상이다. 그러나 요즘은 거의 모든 컴퓨터가 32bit 이상이라 int는 그냥 32bit라고 말한다.

 

근데 내가 사용하는 PC는 64bit인데? 그래도 32bit에 머무른다. 왜냐? 너무 오랫동안 32bit로 머물러서 그 많은 코드를 다 수정할 수도 없고 32bit에서 64bit로 바꾼다고 해서 무조건 성능이 빨라지는 건 아니기 때문이다.

'C' 카테고리의 다른 글

C언어 구조체  (0) 2019.12.18
C언어 포인터 배열  (0) 2019.12.13
C 포인터 const  (0) 2019.12.12
C언어 배열과 포인터 차이점  (0) 2019.12.12
C 스택 메모리 해부(어셈블리어)  (3) 2019.12.09

+ Recent posts