본문 바로가기

컴퓨터 기본 지식

(6)
비트 연산에 대한 이해 Goal 정수 자료형과 비트 연산자에 대한 이해 비트 연산자의 활용 비트 연산자(bitwise operator) bit 단위로 수행되는 논리 연산자 비트 연산자 설명 & (bitwise and) 대응 되는 비트가 모두 1인 경우에만 1반환 (logical AND 연산) | (bitwise or) 대응 되는 비트 중 하나라도 1이면 1반환 (logical OR 연산) ^ (bitwise xor) 대응되는 비트가 서로 다르면 1을 반환 (logical XOR 연산) ~ (bitwise not) 비트의 반전(1 -> 0, 0 -> 1). 이진수의 (1의)보수값을 취하는 단항 연산자. (right logical/arithmetic shift) C계열 언어에서 >> 연산은 unsinged 정수형에 대해서는 log..
컴퓨터의 실수 표현 방법 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) 메모리의 일부분으로 장치나 파일로 부터 읽거나 쓰기 전에 임시적으로 저장되는 곳이다. 스트림 내부적으로 버퍼를..