word short int long?

송지석의 이미지

기본형으로 많이 쓰는 word와 short, int, long 에 대해 정확한 정의를 부탁드립니다.

word는 저의 경우 예전에는 CPU마다 달라지는 단위로 알았었는데(16비트 CPU면 2byte 32비트면 4byte) 2byte로 고정된 형태라고 하고

short는 16bit 맞는 것 같고

int와 long이 혼동되는데
저는 int가 CPU 기본 자료형이고, long이 4byte인 걸로 생각했는데
저번에 tru64(alpha) 시스템에서 확인해보니
int는 4byte고 long은 8byte더군요. (그럼 이 시스템에선 long long은 얼마지??)
int가 아니라 long이 CPU에 따라 크기가 변하는 자료형인가요?
그러나 16bit시스템에선 int가 16bit이잖아요? 그럼 그 시스템에선 long도 16bit인가요?

정확한 정의를 아시는 분 답변 부탁드립니다.

doldori의 이미지

C에서 쓰는 short, int, long을 말씀하신 거라면...
이들은 각각 *최소한* 다음과 같은 범위의 정수를 표현할 수 있어야 합니다.
short : -(2^15 - 1) ~ (2^15 - 1)
int : -(2^15 - 1) ~ (2^15 - 1)
long : -(2^31 - 1) ~ (2^31 - 1)
long long : -(2^63 - 1) ~ (2^63 - 1)
1바이트 == 8비트인 환경에서는 최소한 2, 2, 4, 8바이트가 되지요. 따라서

송지석 wrote:
int가 아니라 long이 CPU에 따라 크기가 변하는 자료형인가요?

long 뿐만 아니라 모든 정수형의 크기는 달라질 수 있습니다.

송지석 wrote:
그러나 16bit시스템에선 int가 16bit이잖아요? 그럼 그 시스템에선 long도 16bit인가요?

아니오. 이 역시 표준에 따르면 최소한 32비트는 되어야 합니다. 참고로 예전의
8088/MS-DOS 환경의 터보 C에서는 long의 범위가 -2^31 ~ (2^31 - 1) 였던
것으로 기억합니다.
익명 사용자의 이미지

8088/MS-DOS에서 turbo-c의 경우
int 16비트
long 32비트
였습니다.

80386/MS-DOS
-WatcomC의 경우 int는 32비트였습니다(이는 운영체제를 갈아업고 그위에 DOS extender(DOS4GW를 기본으로, TNT...등 다양한 것이 있었지만)를 기본 운영체제로 간주했기때문입니다.
-Turbo-C는 여전히 16비트였습니다.

대체로 송지석님의 의견이 정설이며,
Tru64는 스탠다드 유닉스는 아닙니다. 알파에 최적화시킨 유닉스 클론으로 봐야겠지요.

특히, 시스템의 워드는 하드웨어 기준으로 볼때 CPU의 동시처리 바이트수로 규정하는게 옳습니다.
또한 유닉스처럼 가상적인 시스템으로 부터 출발하는 경우 32비트를 1워드로 취하는것이 맞습니다.(따라서, 16비트AT를 기본으로 하던 Xenix는 Unix가 될 수 없었던 것입니다.)
보통은 운영체제가 바라보는 시스템의 bit수를 1word로 간주하고, 이를 int로 삼습니다.
그외는 1WORD를 기준으로 적절히,...

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.