전체 글
-
C언어 표준 O/IC언어 2020. 2. 16. 06:47
이전까지 배운 배용을 간단하게 설명한다면 컴퓨터의 메모리에 저장되는 자료는 0과 1의 2진수의 형태를 가지고 있으며 이런 숫자를 변수와, 상수라는 형태의 개념으로 나눌 수 있으며 변수는 아직 정해지지 않은 수, 상수는 정해진 수로 해석할 수 있다. 또한 이렇게 메모리에 할당된 자료는 해석하는 방식에 따라서 다른 의미를 가질 수가 있다. 이때 해석하는 방식을 자료형이라고 부른다. 이제부터 다룰 내용은 위에서 배운 개념들을 활용하여 입력과 출력과정을 통해 사용자가 자료를 다루는 방법에 대해서 살펴볼 것이다. 간단하게 노래를 듣는 과정을 생각해 보자 사용자는 핸드폰에 mp3파일 형태의 자료를 집어넣을 것이다. 핸드폰은 들어온 파일에 대한 연산을 통해 사용자에게 노래를 틀어줄 것이다. 이때 파일 형태의 자료를 ..
-
문자와 문자열C언어 2020. 2. 16. 05:54
위의 그림은 문자와 문자열을 선언한 것이다. ch1, ch2는 변수를 char형으로 선언하며 "A"와 "B" 라는 문자를 선언한 것이다. ch4는 문자열을 선언한 것이다. 문자열은 문자 배열로 볼 수 있으며 따라서 ch4 = {"A","B"} 와 같다 따라서 ch4라는 배열은 A와 B라는 각각의 인스턴스를 가지고 있는 문자의 연속 집합이라고 볼 수 있다. 위의 자료와 같이 ch1과 ch2는 각각 문자 형태의 자료를 담고있으며 각 메모리에 붙은 이름 역시 독립적이다. 하지만 ch4와 같이 문자배열을 선언한 경우 008CF790이라는 주소의 메모리에 인접한 메모리에 A와B의 문자 형태의 자료를 차례로 담고 있는 것을 확인 할 수 있다. 이것은 흔히 사용하는 문자열이라는 개념은 문자배열을 의미하며 해당 문자배..
-
실수 자료형의 표현C언어 2020. 2. 16. 04:24
C언어에서 실수를 표현하는 자료형 중 가장 많이 사용되는 자료형은 2가지가 존재한다. 1. float (4byte) -> 단정도 2. double (8byte) -> 배정도 그렇다면 어떤 방식으로 컴퓨터는 실수를 인식하는가 ? 아래 자료를 보자 위와 같이 실수를 표현 함에 있어 정수1과 정수 2 사이에는 무한한 실수들이 존재한다. 따라서 컴퓨터의 한정된 메모리의 크기상 일정 부분에서 값을 끊어서 표현해주어야 한다. 이때 끊어서 표현함에 따라 버려지는 뒤의 값들 때문에 필연적으로 실수 표현 방식에서는 일정 크기의 오차가 존재한다. 실수 자료형에 대한 표현 원리는 차후 printf 입출력 부분에서 자세히 다룰 것이므로 지금은 간단하게 컴퓨터가 실수를 표현할 때에는 오차가 생긴다는 사실만 기억한다.
-
자료형의 종류C언어 2020. 2. 6. 20:02
자료형은 다음과 같이 정수형, 실수형으로 나뉘어 지며 정수형에서는 다시 부호가 있는 형태 (Signed)와 부호가 없는 형태(unsigned)로 나뉘어 진다. 아래의 표를 참고하면 어떠한 자료 형태가 있는지 알 수 있다. 위와 같은 자료형 들이 존재하며 자주 사용하게 될 자료형은 char, int, double 형식을 많이 사용하게 될 것이다. 각 자료형이 나타낼 수 있는 경우의 수는 각 자료형의 크기와 상관이 있다. 만약 자료형의 크기가 1byte와 같다면 8bit의 크기만큼 표현할 수 있으며 따라서 2의 8제곱 만큼의 수를 표현할 수 있다. 위의 자료처럼 1bit만큼의 크기는 해당 자료의 부호를 나타내 준다 만약 음수를 표현하고 싶다면 부호 비트자리에 1을 양수라면 0을 할당하여 해당 자료가 음수 o..
-
자료형이란 ?C언어 2020. 2. 6. 19:52
자료형이란? 컴퓨터가 인식할 수 있는 자료는 숫자만 가능하다. 그렇다면 형은 무엇인가? 형식을 의미한다. 메모리라는 공간에 자료가 들어가 있다고 가정했을 때 이 자료를 적절한 형식에 맞게 꺼내서 쓰기 위한 형태라고 볼 수 있는 것이다. 즉 자료형에서 형식이란 메모리 안에 저장되어 있는 숫자를 의미 있는 정보로 변환시키기 위한 약속 또는 규칙이라고 생각하면 된다. 그렇다면 C언어에서 자료형이란 무엇일까? 일정 길이 (Byte 단위 크기)의 메모리에 저장된 정보를 해석하는 방법이다. EX) 메모리에 40이라는 자료가 담겨있다고 봤을 때 객관적으로 본다면 단지 숫자에 불과한 정보이다. 하지만 이때 프로그래머가 메모리의 저장된 40이라는 단순한 숫자를 char 자료형으로 해석하기로 정의하였다면 이 40이라는 숫..
-
Hello World 에서 벌어지는 일C언어 2020. 2. 6. 18:44
다음 자료는 C로 작성한 첫번째 프로그램이다. 가장 상단의 #include는 영어로 '포함시키다' 라는 뜻을 내포하고 있다. 즉 stdio.h 라는 파일을 해당 프로그램에 포함시키겠다는 의미이다. 그렇다면 stdio.h 은 무엇이기에 포함을 시키는 것일까 ? C에서 파일은 크게 2가지 형태로 나뉘어 진다. 1. 소스코드 (헤더파일) : 선언에 관한 내용이 기술 되어 있음 즉 사용자가 printf 라는 함수를 사용하기 위해서는 어디선가 해당 함수를 불어와야 하는데 이때 printf라는 함수가 선언되어 있는 파일이 stdio.h 라는 헤더파일이다. 따라서 다음과 같이 stdio.h라는 헤더파일을 포함시킨다고 정의하였다면 stdio.h라는 파일과 사용자가 작성한 소스코드가 같이 컴파일 되어 목적코드로 변환된다..
-
CPU가 메모리를 관리하는 원리C언어 2020. 2. 5. 22:53
전에 포스팅 한 글에 다음과 같은 내용이 있다. " 정보를 처리할 때 CPU의 연산을 통해 정보가 처리되며 해당 과정은 메모리라는 공간을 통해 정보가 전달, 연산, 저장 등의 처리가 이루어진다. " 따라서 정보의 연산과정에서 CPU와 메인 메모리 ( RAM ) 사이에는 매우 많은 정보 전달 과정이 존재하며 CPU는 메인 메모리를 관리하는 역할도 수행한다. 이번 포스트에서는 그렇다면 CPU는 메인 메모리를 도대체 어떠한 원리로 관리를 하게 되는 것인가 ? 다음과 같은 주제에 대해서 다룰 것이다. 위의 그림은 메모리를 그림으로 표현한 것이다. 비유적으로 본다면 그림과 같이 파란색 상자들이 밀집하여 큰 공간을 이루고 있으며 이 큰 공간을 메모리라고 한다면 상자 하나씩은 1Byte의 정보를 담을 수 있는 크기이..
-
C언어를 위한 컴퓨터 구조C언어 2020. 2. 5. 21:25
컴퓨터 구조 C언어가 OS를 만들기 위해 탄생한 언어인 만큼 OS가 하는 일인 컴퓨터 자원 관리를 이해하기 위해서는 컴퓨터의 구조를 어느 정도 이해하고 학습을 해야 할 필요가 있다. 따라서 이번 포스트에서는 C언어를 학습하기 전 필요한 기초적인 컴퓨터의 구조에 대해서 다룰 것이다. 컴퓨터를 구성하는 코어 장치는 CPU (연산 장치) + RAM (메모리)가 있다. 추가적으로 HDD or SSD라는 보조기억장치가 있으며 해당 기기들은 주변기기이다. C언어를 사용할 때 사용자가 직접 사용하는 것은 RAM을 많이 사용하게 된다. + 용어 virtual mochine = 머신은 cpu를 의미하며 보통 인텔의 '' cpu라고 하면 하드웨어인 cpu 그 자체를 의미하며 버추얼 머신이라는 것은 cpu처럼 머신 역할을 ..