블로그 이미지
하루, 글. 그림. 영상매체. 표현을 도와주는 기기들. 도전 중. 동화다아아
    동화다아아

    카테고리

    분류 전체보기 (176)
    잡담 (1)
    IT 기기-리뷰&뉴스 (7)
    리뷰 - 도서 (1)
    리뷰 - 영상 (0)
    리뷰 - 그림/음악 (1)
    내장형 하드웨어 (163)
    Total
    Today
    Yesterday

    컴퓨터는 자료에 따라 공간을 따로 둔다.(ex. 정수, 실수 등)

    이것을 자료형(data type)이라 한다.


    1. char(character. = 1byte 정수형)

    2. short(2byte 정수형)

    3. int(4byte 정수형)


    printf("%d\n", cNum);

    → “ ”사이의 %는 형식 자정자. % 뒤에 특정한 알파벳과 함께 의미를 가진다.

      %d의 d는 decimalfh 즉, 10진수 정수형으로 나타내라는 뜻.

    %o = octal

    %h = hex



    #include<stdio.h>

    int main()

    {

            char cNum; // char는 character, 1바이트, (이름은 cNum으로 지정, 대소문자 구분)

            cNum = 100; // 대입 연산자(=, 오른쪽에 있는 걸 왼쪽에 대입해 준다.)

            

            printf("%d\n",cNum); // “ ” 사이에 %가 있을 때 이것을 형식 지정자라고 한다.

            cNum = cNum +1;

            printf("%d\n",cNum); // 순서대로 실행되는 c의 특징을 확인(%d 10진수 정수형)

            printf("%o %x",cNum); // (%o 8진수 정수, %x 16진수 정수 형)


            return 0;

    }



    BUS 의 선 개수는 bit 수와 같다.(bus 선이 16개이면 16bit)

    →bus의 크기와 reg의 크기는 같다.

     즉, cpu는 register의 크기에 맞추어 지며 32bit는 4byte를 한번에 처리하며 이것을 word 라고 한다.

    word : cpu에 맞춘 register의 크기, 컴퓨터가 한번에 처리하는 양.

            ex) 16bit 컴퓨터에서는 2byte = 1 word

                32bit 컴퓨터에서는 4byte = 1 word


    토큰 - 의미있는 조각으로 어휘를 나눈 것(키워드, 사용자 정의 식별자, 연산자, 상수, 보조문자)

    변수 - 첫 글자는 영어의 알파벳이나 밑줄( _ 언더바)가 올 수 있다.

    ※ 변수의 이름은 적당히 짧지만 의미를 가지게 정하는 것이 좋다.

       대소문자가 구분된다. 보통 단어를 변수로 하면 첫글자는 대문자로 많이 쓴다.

    → 몇 가지 기법

    cScore; ⇒ c(character 형의 정수)Score(정수) 의 의미를 가진다고 생각해 볼 수 있다.

    c_Score or c scoreNumber 등등으로 변수를 사용하는 기법들이 존재한다. 



    #include <stdio.h>

    int main()

    {

            char cNum; //메모리에 cNum이란 이름으로 1byte 할당

            cNum = 127; //cNum에 127을 대입

            printf("%d",cNum); //cNum값을 10진수 정수형으로 출력

            

            return 0;

    }


    #include <stdio.h>

    int main()

    {

            unsigned char cNum; //메모리에 cNum이란 이름으로 1byte 할당

            cNum = 127; //cNum에 127을 대입

            printf("%d\n",cNum); //cNum값을 10진수 정수형으로 출력

            cNum = 255;

            printf("%d\n",cNum); //char는 1byte 이므로 255까지 표현할 수 있고 127보다 커지면 -가


    붙으며 줄어든다.

            cNum = 128;

            printf("%d\n",cNum);


            return 0;

    }

            unsigned char cNum; // unsigned는 양수로 쓰겠다는 뜻.

            signed char cNum; // signed를 첨부한것과 생략하고 변수만 사용하는 값은 같다.

            char cNum; //


    #include <stdio.h>

    int main()

    {

            unsigned char cNum; //메모리에 cNum이란 이름으로 1byte 할당

            //signed char cNum; //

            //char cNum; //

            cNum = 127; //cNum에 127을 대입

            printf("%d\n",cNum); //cNum값을 10진수 정수형으로 출력

            cNum = 255;

            printf("%d\n",cNum); //char는 1byte 이므로 255까지 표현할 수 있고 127보다 커지면 -가 붙으며 줄어든다.

            cNum = 128;

            printf("%d\n",cNum);

            cNum = 256;

            printf("%d\n",cNum);

            cNum = 257;

            printf("%d\n",cNum);

            cNum = 0;

            printf("%d\n",cNum);

            cNum = cNum-1       ;

            printf("%d\n",cNum);




            return 0;

    }


    char 변수 사용시 127을 넘어가면 -128, -127, -126...-1로 나타난다.

    → 즉 0과 255는 연결되어있고 이것이 반복되고 있다고 볼 수 있다. (1byte의 경우.) 

    short 변수 사용시 32767을 넘어가면 -32768,-32767....-1로 나타난다.

    → 즉 0과 65535는 연결되어있고 이것이 반복되고 있다고 볼 수 있다. (2byte의 경우.)        

    1byte = 8bit = 28 = 256(0~255)

                   216 = 65536(0~65535)

    즉, unsigned 일 때 -1장 큰수로 나타난다.(해당 변수 범위의)

    평상시에는 변수 앞에 signed를 생략하고 있다.

    signed는 해당 변수의 양의 정수를 선언

    unsigned는 해당 변수의 정수를 선언


    #include<stdio.h>

    int main()

    {

            //unsigned short sNum; //2byte 32short형 양수 sNum이란 이름 선언

            signed short sNum;

            sNum = -1; //-1을 sNum에 대입

            printf("%d\n", sNum);

            sNum = 32767;

            printf("%d\n", sNum);

            sNum = 32768;

            printf("%d\n", sNum);

            sNum = 32769;

            printf("%d\n", sNum);



            return 0;

    }

     


    변수 : 변하는 숫자를 기억한다.

            (ex. cNum = -1이라 하면 255가 저장되며, 100을 넣으면 100이 저장된다.)

    변수선언 사이에 다른 명령문을 넣어서는 안된다.

    #include<stdio.h>

    int main()

    {

            unsigned char cNum; //1byte char형 양수 cNum이란 이름 선언

            unsigned short sNum; //2byte short형 양수 sNum이란 이름 선언

            unsigned int iNum; //4byte int형 양수 iNum이란 이름 선언


            cNum = -1;

            sNum = -1;

            iNum = -1;


            printf("cNum:[%d], sNum[%d], iNum[%d]\n", cNum, sNum, iNum);

            sNum =cNum;(sNum에게는 cNum의 대입은 255의 대입과 같다.)

            printf("cNum:[%d], sNum[%d], iNum[%d]\n", cNum, sNum, iNum);


            return 0;

    }


     

    char, short, int 각각의 표현가능한 최대수와 바이너리 값을 찾기 위해서는 unsigned 에 -1 을 넣으면 된다. 최대값에 반이 바이너리 값이다.

    Posted by 동화다아아
    , |

    최근에 달린 댓글

    최근에 받은 트랙백

    글 보관함