본문 바로가기

전체 글

(74)
컴퓨터의 실수 표현 방법 Goal 실수를 표현하는 방법에 대한 이해 실수 비교를 할 수 있다 실수(real number) : 수학에서 실직선 위에 점이나, 십진수의 나열로 표현한 수 컴퓨터에서 실수를 표현하기 위해서 다음과 같은 상황들이 고려 되어야 한다. 정수 부분과 소수 부분의 표현 두 실수 사이에는 무한한 다른 실수가 존재하기 때문에 적절한 근사치로 표현 우선 십진수의 실수 표현에 대해 알아보자 십진수 13.625 는 십진법(위치값 기수법 중 하나)으로 표현하면 다음과 같이 표현 될 수 있다. $13.625_{(10)} = 1 \times 10^1 + 3 \times 10^0 + 6 \times 10^{-1} + 2 \times 10^{-2} + 5 \times 10^{-3}$ 그렇다면 십진수로 표현된 실수를 이진수로는 어..
컴퓨터의 정수 표현 방법 Goal 정수 표현 방법에 대한 이해 2의 보수를 사용하는 이유에 대해 설명할 수 있다 정수 표현 n개의 비트는 $2^n$개의 정수를 표현할 수 있다. 정수는 2가지 형태로 표현 될 수 있다. 부호를 표시 하는 정수 표현 방법 부호를 표현 하지 않는 정수 표현 방법 부호를 표현하지 않을 경우, 모든 비트를 모두 양의 정수를 표현하는데 사용하면 된다. 이 경우, 0 ~ $2^n-1$ 까지의 양의 정수를 표현할 수 있다. 부호를 표시하는 경우 양수와 음수를 구분하기 위해 최상위 비트(Most Significant Bit)를 부호 표기를 위해 남겨두는 방식을 사용한다. 하지만 단순히 최상위 비트를 1로 표시하는 방식에는 문제가 있다. 그래서 음수를 표현하기 위해서 2의 보수로 표현한다. 음수 표현 방법 ① 부..
컴퓨터의 수 표현 Goal 컴퓨터에서 수를 표현하는 방법에 대한 이해 컴퓨터가 '수'를 표현하는 '숫자' : 이진수 컴퓨터는 전기적 신호에 의해 동작하는 기계이다. 따라서 전기적 신호가 있는지(1) 없는지(0) 두 가지 상태값을 가지며 두 상태값에 따라서 수를 표현할 수 있다. 이 때 이 두가지 상태값을 표현하기 적합한 숫자가 이진수이다. 다음은 기수(기준이 되는 수)별로 숫자를 표현하는 방법을 나타낸다. n진법 : 기수가 n인 위치값 기수법 (n진수를 표현할 때 아래에 첨자를 붙여 표현) 10진법 10을 기수로 하는 위치값 기수법 (위치값 기수법(positional numeral) : 자릿수에 모두 동일하게 숫자를 표기하는 방법) 각 자리에는 0~9의 숫자가 올 수 있다. => 10진수 (표현 문자의 수가 10개) ex..
문자 인코딩에 대한 이해 Goal 문자열 인코딩 방식에 대한 이해 유니 코드에 대한 이해 C++환경에서 인코딩 방식 이해 우선 컴퓨터가 문자를 어떻게 저장하고 표현하는지에 대해 알아보자 그래픽 문자(graphic character) : 컴퓨터 상에서 시각적으로 표현 되는 문자 화면상 픽셀로 표현되서 우리 눈에 보이는 문자를 의미한다. 문자(character) : 단일 문자를 표현하기 위한 비트의 나열 문자는 하나의 그래픽 문자와 맵핑되어 표현될 수 있다. 예를 들어 0110 0001 (숫자 97) 이진수는 그래픽 문자 'a'로 표현될 수 있다. 문자열(string) : 연속적인 문자의 나열 메모리 상에 문자를 연속적으로 배치한 것으로, 마찬가지로 비트의 나열이다. 문자는 이진수로 저장되는 값일 뿐이다. 그렇다면 문자는 몇바이트의..
스트림, 버퍼에 대한 이해 스트림(Stream) 서로 다른 장치를 이어주는 가상의 연결 고리. 스트림을 통해 두 장치 사이에서 데이터를 주고 받을 수 있다. 스트림을 정확히 표현하면 '추상화된 장치(abstract devices)' 이다. 왜냐하면 여러가지 주변 장치들(모니터, 키보드, 하드 디스크) 을 추상화 시켜서 사용자가 마치 동일한 장치에 접근하는 것 처럼 사용할 수 있게 만들었기 때문이다. 입출력에 대한 처리는 장치 제조사마다 다를 수 있다. 하지만 우리 프로그래머는 스트림을 통해서 동일한 형태로 장치에 접근해서 입력 및 출력을 수행할 수 있다. 즉, 스트림이 인터페이스 역할을 해주는 셈이다. 버퍼(Buffer) 메모리의 일부분으로 장치나 파일로 부터 읽거나 쓰기 전에 임시적으로 저장되는 곳이다. 스트림 내부적으로 버퍼를..
가중치 그래프(Weighted Graph), 최소 신장 트리(MST) Goal 가중치 그래프에 대한 이해 가중치 그래프를 표현(또는 구현)할 수 있다 최소 신장 트리에 대한 이해 최소 비용 신장 트리를 구할 수 있다 사전 관련 지식 : 그래프 가중치 그래프(Weighted Graph) 그래프의 간선에 가중치가 있는 그래프 가중치 그래프는 다음과 같이 표현된다. G = (V,E, w) V(G) : 그래프 G의 정점 집합 E(G) : 그래프 G의 간선 집합 w(e) : 간선 e의 가중치 (간선의 가중치(weight) 또는 비용(cost) 모두 같은 의미이다.) 가중치 그래치 그래프의 응용 분야는 매우 다양한데, 그 중에서 네트워크를 표현하는데 많이 사용되기 때문에 가중치 그래프를 네트워크라고도 한다. 가중치 그래프는 최소 환승, 최단 경로, 최소 비용 등과 같은 것들을 계산할..
트리(Tree) Goal 트리 기본 용어에 대한 이해 트리와 이진 트리의 정의를 말할 수 있다 트리와 이진트리의 성질에 따른 특징을 설명할 수 있다 이진 탐색 트리에 대한 이해(정의, 연산, 성능, 활용 예시) 힙에 대한 이해(정의, 연산, 성능, 활용 예시) 트리의 기본 용어 트리는 그래프의 특수한 형태로 그래프 모양이 나무를 뒤집어 놓은 것 같다고 해서 이름 붙여졌다. (트리 용어 이전에 그래프에 대한 이해와 관련 용어를 찾아보면 좋다) 그래프 루트 노드(Root Node) : 트리에서 부모가 없는 최상위 노드. 트리의 시작점 부모 노드(Parent Node) : 루트 노드 방향으로 직접 연결된 노드 자식 노드(Child Node) : 루트 노드 반대방향으로 직접 연결된 노드 형제 노드(Siblings Node) :..
그래프(Graph) Goal 그래프가 무엇인지 설명할 수 있다 그래프 기본 용어에 대한 이해 특징에 따라 그래프를 구분지어 말할 수 있다 인접행렬, 인접 리스트에 대한 이해 (그래프 표현 방법에 대한 이해) 그래프 탐색에 대한 기본 이해 (DFS, BFS) 그래프(Graph) 정점(vertex/node)과 간선(edge/link)으로 구성된 자료구조 그래프(G) = 정점 집합(V) + 간선 집합(E) 수학적으로 그래프를 G = (V,E)와 같이 표현 정점(vertex / node) : 여러 가지 특성을 가질 수 있는 객체 간선(edge / link) : 정점들간의 관계 ex) 그래프 G1, G2가 있을 때 각각의 그래프의 정점과 간선은 다음과 같이 표시할 수 있다. - V(G1), E(G1) - V(G2), E(G2) 설명..