[개발] 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

  

  

,