본문 바로가기

정수와 실수의 표현 방식 1. 정수의 표현 방식 컴퓨터가 데이터를 표현하는 방식은 약속이다. 1과 0이 메모리공간에 저장되어있는 걸 보고 정수인지, 실수인지, 문자인지 알 수 없다. 어떤 약속에 의해 데이터가 저장되었고, 그 데이터를 참조할때도 약속된 형태에 따라서 해석을 하 기 때문에 정수가 될수도, 실수가 될 수도 있다. 그래서 가장 기본이되는 정수와 실수의 표현 방식이 어떻게 약속되어 있는지 봐보자 정수와 실수 둘은 데이터 저장방식이나 참조방식이 다르다. 1) 양의 정수 표현 방식 양의 정수 표현에 사용되는 바이트 수가 커지면 , 표현할 수 있는 정수 값의 범위가 증가한다. 바이트수에 상관없이 맨 앞은 부호비트(msb)로서 0은 양의 정수를 나타내고, 나머지는 데이터의 크기를 나타낸다. 밑의 그림은 1바이트 기준으로 +11..
데이터 표현의 단위 1. 비트, 바이트, 워드, 킬로, 메가바이트 데이터 또는 메모리 공간의 크기를 나타내는데 사용되는 단위를 알아보자 1) 비트와 바이트 - 비트는 컴퓨터가 나타내는 데이터의 최소 단위이다. - 1비트는 0 아니면 1값(2진수) 하나를 저장할 수 있는 메모리 공간의 최소크기를 의미한다. - 이러한 비트가 여덟개 모이면 1바이트가 된다. 2) 워드 - cpu가 한번에 연산, 처리할 수 있는, 이동시킬 수 있는 데이터의 크기를 의미한다. - 32 비트 시스템, 컴퓨터에서는 32비트가 1워드이다. - 64 비트 시스템, 컴퓨터에서는 64비트가 1워드이다. 3) 킬로바이트, 메가바이트, 기가바이트 - 1KB = 1 x 1024 바이트 - 1MB = 1 x 1024 x 1024 바이트 - 1GB = 1 x 1024..
진수와 진수변환 1) 컴퓨터의 데이터 표현 및 처리방식 내부적으로 컴퓨터는 0과 1을 이용해서 다양한 데이터를 표현하기도 하고 처리(연산)하기도 한다. 따라서 컴퓨터의 메모리에는 다음과 같은 형태의 데이터가 저장이 된다. 10110110 11010011 그렇다면 이 데이터의 종류,정체는 무엇일까? 정수일까?실수일까?문자일까? 여기에 답을 할 수가 없다. 왜냐하면 저장되어 있는 2진수 데이터를 어떻게 해석하느냐에 따라서 그 데이터의 종류가 결정되기 때문이다. 다시 말해서 위 데이터는 정수,실수,문자가 모두 될 수 있다. 그래서 결론적으로 컴퓨터가 위 2진수 데이터를 가지고 정수,실수,문자등 으로 인식할 수 있도록 하 는 약속과 방식이 있다. 우리는 이러한 표현 방식을 알아야 한다. 2) N진수로 표현할 수 있는것들 숫자는..
메모리 공간의 할당과 활용 1. 변수란? 변수는 데이터의 저장과 참조를 위해 할당된 메모리 공간이라 할 수 있다. 2. 변수의 선언 - int num; 1) 메모리 공간의 할당 - int - 할당이란 내가 데이터를 저장하고 참조하기 위한 메모리 공간을 미리 마련해두는것 - int 자료형은 10진수 정수를 저장하기 위한 4byte 메모리 공간을 할당하도록 약속 - 자료형은 타입 용도에 따라 할당 방식이 달라짐 2) 변수 이름 붙이기 - num - 할당된 메모리 공간에 접근(저장과 참조를)하기 위해 특정 변수의 이름을 붙인다. 3. 메모리 공간의 활용 1) 활용 할당된 메모리 공간에 데이터를 저장을 하고 참조하는 것을 말한다. num = 20; 2) 활용 예시(데이터의 저장과 참조) 123456789101112int main(void..
서식문자(Conversion specifier) 서식문자(Conversion specifier) ◦ 문자열의 중간에 삽입이 되어 출력의 형식을 지정한다 . ◦ %d 는 10 진수 정수의 출력을 의미한다 . 1234567891011int main(void){ printf("Apple %d Orange %d Kiwi \n"); printf("Apple %d \n", 100); printf("Apple %d Orange %d \n", 100, 200); printf("Apple %d Orange %d Kiwi %d \n", 100, 200, 300); return 0;}Colored by Color Scriptercs
이스케이프 시퀀스(특수문자) 1. 시퀀스: 둘 이상 무엇인가가 연결되어 나열되어있는것\n(개행) : 2개이상의 문자가 연결되어서 개행이라는 의미로서 하나의 문자로 인식됨. 2. 이스케이프 시퀀스(특수문자)◦ 문자열 내에서 다른 의미로 해석이 되는 문자 123456789101112131415#include int main(void){ printf("boy\tapple\n");//수평탭 printf("mornimk\b\bng\n");//백스페이스 printf("up\rdown\n");// 캐리지 리턴 printf("\a \n"); //경고음 printf(" \"Double quotation mark\" \n");//큰따옴표 printf(" \\backslash\\ \n");//역 슬래시 printf(" \' \? \n");//물음표와 ..
프로그램의 기본 구성과 printf 함수의 기능 1. 프로그램의 기본 구성main 함수는 ◦ 프로그램의 시작과 끝이다. ◦ main 함수는 행 단위로 위에서 아래로 실행한다. ◦ 모든 C 프로그램은 하나의 main 함수가 존재한다. 2. printf 함수의 기능 12345678#include //printf 함수의 사용을 위한 헤더파일 선언int main(void){ printf("사과 \n");//큰 따옴표로 묶여서 표현되는 문자열 출력 printf("토마토 \n"); //개행을 의미하는 특수문자 \n printf("파일애플 \n");//문자의 끝은 세미콜론으로 마무리 return 0;//return 문에 의한 프로그램의 종료}Colored by Color Scriptercs ◦ printf 함수의 사용을 위한 헤더파일 선언◦ 개행을 의미하는 특수문..
1. C 프로그래밍의 이해 1. CPU와 어셈블리 언어 1) CPU : - 1과 0밖에 모름 2) 바이너리 코드:- CPU가 인식할 수 있는 1,0으로 이루어진 명령어, 기계어- 실행파일을 만들기위한 재료 2) 실행파일:- 확장자가 exe인 파일로 프로그래머가 최종적으로 만들려는것, - CPU에게 일을 시키기 위한 바이너리 코드로 이루어짐- 최종적으로 CPU에게 일을 시키기 위한 바이너리 형태의 명령어를, 운영체제에서 요구하는 포맷에 맞춰서 구성한 파일 3) 어셈블리 언어: - CPU에게 일을 시키기 위한 바이너리코드로 이루어진 명령어들을 사람들이 이해하기 쉬운 형태로 조금 발전시킨 언어, - 하지만 사람보다 하드웨어(CPU)에 훨씬 더 가까운 언어라서 어셈블리 언어를 잘 알려면 CPU구조를 잘 이해 해야한다. 4) CPU와 어셈..