티스토리 뷰

목차

    반응형

    C언어 INT, C++ INT 16비트에서 이해하기, 정수 자료형 키워드 뜻


    먼저, 훑고 넘어갈 사항


    1. 16 Bit = 2 Byte = 1 Word(IBM 호환, 본 포스팅은 16비트 프로세서를 기준으로 작성됨)


    2. 어셈블러에서 사용되는 자료형(괄호 안은 바이트, 비트)

    : byte(1-8), word(2-16), dword(4-32), qword(8-64)


    3. 기본 자료형 크기

    : byte - 1 Byte

    : short - 2 Byte

    : int - 4 Byte

    : long - 4 Byte

    : double - 8 Byte


    C언어 INT, C++ INT


    1 Word는 우측(0)에서 시작되어 좌측(15)에서 끝나는, 16개의 연속된 비트 그룹입니다.


    C언어 INT[C언어 INT, C++ INT 16비트에서 이해하기]


    16비트를 기준으로,


    - 가장 오른쪽 비트 : 최하위 비트, 낮은 비트, LO bit, LOBIT이라 부름

    - 가장 왼쪽 비트 : 최상위 비트, 높은 비트, HI bit, HIBIT라 부름


    기타, 다른 비트들은 위치를 참조하여 비트1, 비트2, 비트3 등으로 부릅니다.

    하나의 문장(Word)은 2바이트로 구성되므로, 


    - 우측 8비트 : 최하위 바이트, 하위 바이트, LO byte, LOBYTE라 부름

    - 좌측 8비트 : 최상위 바이트, 상위 바이트, HI byte, HIBYTE라 부름


    2진 포맷(Binary Format)으로는 0000000000000000, 4비트씩 그룹화하면 해서 0000 0000 0000 0000으로 표현할 수 있습니다.


    따라서, Word를 표현할 수 있는 최소의 2진 값은 0000 0000 0000 0000이며, Word의 최소 십진 값은 0입니다.

    Word에 저장할 수 있는 16진수 값은 0x0000000000000000이며, 0x00000000, 0x0000, 0x0로도 표기가 됩니다. 이런 값들은 0x0과 같은 의미를 나타내기도 합니다.


    그리고 Word로 표현할 수 있는 최대 2진 값(Binary Value)은 1111 1111 1111 1111이 됩니다.


    1*215+1*214+1*213 + 1*212 + 1*211 + 1*210 + 1*29 + 1*28 + 1*27 + 1*26 + 1*25 + 1*24 + 1*23 + 1*22 + 1*21 + 1*20

    = 32768 + 16384 + 8192 + 4096 + 2048 + 1024 + 512 + 256 + 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1

    = 65535


    만약, Word의 16진수 값이 모두 f나 F로 변환되었다면, Word가 저장할 수 있는 최대 범위를 채웠다는 의미입니다.


    1111 1111 1111 1111


    f f f f


    = 0xffff = 0xFFFF

    = 0Xffff = 0XFFFF


    c++ data type int[C언어 INT, C++ INT 16비트에서 이해하기]


    Application: Introducing Numeric Values


    1. Microsoft Visual C++ 시작

    2. 시작 페이지에서 새로운 응용 프로그램을 만들기 위해 새 프로젝트를 생성(Win32 콘솔)

    3. 프로젝트 이름은 LoanPreparation1

    4. 빈 문서를 추가하고 프로젝트 생성을 완료(.cpp)


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #include <iostream>
    using namespace std;
     
    void main()
    {
        wprintf_s(L"=-= Loan Evaluation =-=");
        _putwch('\n');
     
        wprintf_s(L"=-= Loan Summary =-=");
        _putwch('\n');
     
        getchar();
        getchar();
    }
    cs


    Signed Short Integers


    Word는 16개의 비트나 2개의 바이트를 기반으로 자연수(Natural Number)를 저장합니다. 위에서 언급했듯이, Word에 저장할 수 있는 최대 정숫값은 65,535며 Short 키워드 변수도 사용할 수 있습니다. 이때의 변숫값은 -32,768~32,767 사이로 지정할 수 있으며, 아래는 사용 예입니다.


    1
    2
    3
    4
    5
    6
    7
    #include <iostream>
    using namespace std;
     
    void main()
    {
        short small = 448;
    }
    cs


    Short형 변수의 값을 출력하려면, cout<< 뒤에 변수명을 입력합니다.

    아래는 사용 예입니다.


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #include <iostream>
    using namespace std;
     
    void main()
    {
        short small = 448;
     
        cout << small;
        putchar(L'\n');
    }
    cs


    위의 소스 코드는 아래와 같은 출력값을 나타냅니다.


    448

    Press any key to continue . . .


    변수가 값(Value)을 갖기 위해선 cin>>을 선언한 뒤, >> 뒤에 변수명을 입력해야 합니다. 


    변수가 양수 또는 음수를 표현하기 위해서 Signed 키워드를 사용합니다. signed는 숫자 값 외의 다른 바이트 공간에 0을 채우고, unsigned는 1을 채웁니다. (signed는 부호를 표현, unsigned는 양수의 표현 범위를 두 배로 늘림)


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #include <iostream>
    using namespace std;
     
    void main()
    {
        signed short small = 448;
     
        cout << small;
        putchar(L'\n');
    }
    cs


    결과는 위와 같습니다.


    Win32 라이브러리는 짧은 정수형 데이터(signed short integer)를 지원하기 위해 SHORT란 데이터형을 제공합니다. 사용 방법은 아래와 같습니다.


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #include <iostream>
    #include <Windows.h>
    using namespace std;
     
    void main()
    {
        SHORT number = 1609;
     
        cout << number;
        putchar(L'\n');
    }
    cs


    결과는 아래와 같습니다.


    1609

    Press any key to continue . . .

    Unsigned Short Integers


    변수가 양수나 비교적 작은 숫자만을 할당받는 경우엔 unsigned short integer로 부를 수 있습니다. 따라서, 상대적으로 작은 숫자를 저장할 변수를 선언하려면, 0에서 65,535까지 표현할 수 있는 unsigned short integer형을 사용합니다.


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #include <iostream>
    using namespace std;
     
    void main()
    {
        unsigned short number = 1609;
     
        cout << number;
        putchar(L'\n');
    }
    cs


    결과는 아래와 같습니다. (C언어 int, C++ int 결과는 같음)


    This music album contains 16 tracks

    Music Category: 2


    Win32 라이브러리는 unsigned short의 값을 위해 USHORT, WORD란 데이터형을 제공합니다.


    C언어 INT, C++ INT 16비트에서 이해하기[C언어 INT, C++ INT 16비트에서 이해하기]


    Application: Using Unsigned Short Integers


    unsigned short integer의 사용 예


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    #include <iostream>
    using namespace std;
     
    void main()
    {
        unsigned short period;
     
        wprintf_s(L"=-= Loan Evaluation =-=");
        _putwch('\n');
        wprintf_s(L"Enter the number of months: ");
        cin >> period;
     
        wprintf_s(L"=-= Loan Summary =-=");
        _putwch('\n');
        cout << "Period: " << period << " months\n";
     
        getchar(); 
        getchar();
    }
    cs


    메뉴에서 디버그 - 디버그 시작을 클릭


    원하는 숫자를 입력하고 엔터를 누르면, 아래와 같은 결과화면이 생성


    =-= Loan Evaluation =-=

    Enter the number of months: 36


    =-= Loan Summary =-=

    Period: 36 months


    C언어 INT, C++ INT 16비트에서 이해하기, 정수 자료형 키워드 뜻

    반응형