[개발] Types, Operators and Expressions
개발자 | 2013. 4. 22. 19:10
* 출처 : http://waintman.tistory.com/31
-
Bit
- Bit란 0,1로 표현되는 숫자
- 즉, 2진수(binary)로 나타냈을 때의 한 자리(digit)이다.
- Bit를 표기할 때는 임의로 |0| 이렇게 표기하도록 하며, 이 뜻은 1bit를 의미한다.
- 1bit à 2가지 상태 à |0| or |1|
- 2bit à 4가지 상태 à |00| or |01| or |10| or |11|
- 3bit à 8가지 상태 à …
- 4bit à 16가지 상태 à …
- 계산하는 방법은 2^N
- x86 à 32bit
- cpu 에 핀이 많이 달려 있는 것 à 그 핀 하나가 각 한 bit를 가진다고 보면 32bit cpu는 한번에 처리할 수 있는 것이 32bit란 말
-
Byte
- Byte는 bit가 8개 모인 것이다 |00000000| 은 1byte이다.
- 1byte 나타낼 수 있는 가짓수는 2^8 으로 256가지이다.
- 10진수로 나타내보면 0~255 가 될 것이다.
- 그러면 32bit는 4byte가 되는 것이다. 32bit/8bit = 4byte
- 32bit로 나타낼 수 있는 메모리는 각 메모리당 1byte씩 저장한다고 하면, 2^32 = 4GB 가 된다.
- 그러므로 32bit OS에서는 인식할 수 있는 최대 메모리는 4GB가 된다.
-
32bit 자료형 / 64bit 자료형 크기 (출처: http://foxlime.tistory.com/115, http://wiki.kldp.org/wiki.php/32bitCodeTo64bit )
- int 형은 32bit 를 유지합니다.
- short 형은 16bit 를 유지합니다.
- long 형은 32bit에서 64bit로 확장됩니다.
- long long 형은 64bit 를 유지합니다.
- pointer 형은 32bit 에서 64bit로 확장됩니다.
- long double 형이 12bytes 에서 16bytes로 확장됩니다.
- size_t과 ssize_t 형이 32bit 에서 64bit 로 확장됩니다.
- 이와 관련된 typedef 문 역시 확장됩니다.
- 포인터의 크기가 64bit이기 때문에 그 메모리 주소 연산은 32bit의 환경과 다르게 된다.
자료형 |
32 bit OS |
64bit OS |
int |
32 bit (4 Byte) |
32 bit |
short |
16 bit |
16 bit |
long |
32 bit |
64 bit |
longlong |
64 bit |
64 bit |
pointer (*) |
32 bit |
64 bit |
long double |
12 bytes |
16 bytes (128 bit) |
size_t , ssize_t |
32 bit |
64 bit |
typedef |
|
|
'개발자' 카테고리의 다른 글
[개발] Semaphore(세마포어)와 뮤텍스(Mutex) (0) | 2013.04.24 |
---|---|
[개발] Thread 간 동기화에 관하여 (Critical Section) (0) | 2013.04.23 |
[개발] OSI(Open System Interconnect) 7 Layer (0) | 2013.04.19 |
[WEB] HTTP STATUS CODE (0) | 2013.04.11 |
[Java] 예외, Error, Runtimeexception (0) | 2013.02.27 |