


8진수 한 자리는 2진수 3자리, 16진수 한 자리는 2진수 4자리에 대응하므로, 8진수를 일단 2진수로 편 뒤 소수점을 기준으로 4자리씩 다시 묶어 읽는다.
정수부 37은 011 111, 소수부 54는 101 100이므로 전체 2진수는 11111.101100이 된다.
소수점에서 정수부는 왼쪽으로 묶어 0001 1111 → , 소수부는 오른쪽으로 묶어 1011 0000 → 이고 끝자리 0은 버리므로 결과는 1F.B이다.
- 1F.A는 소수부의 8진 두 자리 중 뒤의 4를 빠뜨리고 5(→101→1010)만 옮겨 적었을 때 나오는 값이다.
- 1F.A4·1F.BA는 소수부 비트를 4자리씩 묶지 않고 8진 자리마다 16진 한 자리를 대응시켜 소수부가 두 자리로 늘어난 값으로, 남는 비트는 오른쪽에 0을 채워 1011 0000으로 묶어야 한다.
버스 라인은 여러 장치 사이를 각각 개별 배선으로 연결하는 대신 하나의 공용 전송로를 공유하게 하여 결합선의 수를 줄이는 것이 가장 큰 목적이다.
배선 수가 줄면 회로 구성이 단순해지고 장치 추가·확장도 쉬워진다.
- 전송의 정확성은 버스를 쓰는 목적이라기보다 부가적인 결과에 가깝다.
- 속도 향상은 버스 공유로 인한 경합 때문에 오히려 제약이 될 수 있어 주된 목적이 아니다.
- 레지스터 수의 축소는 버스와 직접적인 관계가 없다.
플립플롭(flip-flop)은 이전 상태를 기억하는 기억 소자를 포함하므로 대표적인 순서 논리 회로이다.
출력이 현재 입력뿐 아니라 이전 상태에도 좌우되어 카운터나 레지스터 같은 회로의 기본 소자로 쓰인다.
- 반가산기는 입력 값만으로 출력이 결정되는 조합 논리 회로이다.
- 인코더는 기억 기능 없이 입력 신호를 부호로 변환하는 조합 논리 회로이다.
- 멀티플렉서는 여러 입력 중 하나를 선택해 출력하는 조합 논리 회로이다.
오퍼랜드 자체가 실제 데이터인 번지지정 방식은 즉시 주소지정(immediate address)이다.
명령어의 오퍼랜드 자리에 값 자체가 들어 있으므로 데이터를 얻으려고 메모리를 다시 읽을 필요가 없어 실행 속도가 가장 빠르다.
- 직접 주소지정은 오퍼랜드가 데이터가 들어 있는 번지를 가리킨다.
- 간접 주소지정은 오퍼랜드가 번지를 담고 있는 번지를 가리켜 메모리를 두 번 참조한다.
- 상대 주소지정은 프로그램 카운터 같은 기준 번지에 오퍼랜드를 더해 실제 번지를 구한다.
직렬 가산기는 두 수를 최하위 비트부터 한 비트씩 더하므로, 2진수 10(십진 2)과 11(십진 3)의 합은 101(십진 5)이 된다.
그림은 입력 A·B 를 받는 전가산기 블록의 자리올림 출력 C 를 지연소자에 넣고, 지연소자의 출력을 다시 전가산기의 자리올림 입력으로 되먹이는 구조다. 이렇게 하면 한 클록마다 앞자리에서 생긴 자리올림이 다음 자리 덧셈에 더해진다.
비트별로 따라가면 최하위 자리는 0+1 이라 합 1·자리올림 0, 다음 자리는 1+1 이라 합 0·자리올림 1 이 되고, 마지막에 남은 자리올림 1 이 맨 앞 자리가 되어 이다.
- 100 은 십진수 4, 110 은 십진수 6 으로 와 맞지 않는다
- 111 은 십진수 7 이어서 역시 두 수의 합이 아니다

C 언어는 소스 코드를 실행 전에 기계어로 미리 번역하는 컴파일러 방식의 언어이므로, 한 줄씩 해석하며 실행하는 인터프리터 방식과는 관계가 없다.
주석 표기, 명령문 구분, 실행 시작 지점에 대한 규칙은 모두 C 언어의 실제 문법과 일치한다.
- “/*”와 “*/”로 주석을 표시하는 것은 C 언어의 실제 문법이다.
- 세미콜론으로 각 명령문을 구분하는 것도 C 언어의 실제 문법이다.
- 모든 프로그램이 main 함수에서 실행을 시작하는 것도 C 언어의 실제 규칙이다.
기계어는 0과 1로만 이루어진 하드웨어 수준의 명령 체계로, 객체(object) 개념이나 클래스·상속 같은 구조를 갖지 않는다.
따라서 클래스와 객체를 기반으로 프로그램을 구성하는 객체지향언어에 해당하지 않는다.
- 비주얼 C++는 클래스와 객체 개념을 지원하는 객체지향 언어이다.
- 델파이(Delphi)는 객체 파스칼을 기반으로 한 객체지향 언어이다.
- 자바(JAVA)는 처음부터 객체지향 설계로 만들어진 언어이다.
자기 디스크는 회전하는 원판 위의 트랙과 섹터에 저장된 데이터를 읽기 위해 액세스 암(arm)이 원하는 위치로 이동할 수 있으므로 random access가 가능하며, 실제로 주로 random access를 많이 사용한다. 자기테이프와 달리 디스크는 순차 이동 없이 헤드를 직접 목표 트랙으로 이동시킬 수 있기 때문에 random access에 최적화되어 있다.
ROM은 한 번 기록된 내용을 읽기만 할 수 있고 사용자가 임의로 다시 써넣을 수 없는 읽기 전용 기억소자이다.
전원이 꺼져도 내용이 유지되는 비휘발성 메모리로, 부팅 프로그램처럼 변경할 필요가 없는 데이터를 저장하는 데 쓰인다.
- RAM은 자유롭게 읽고 쓸 수 있는 기억장치이다.
- SRAM은 플립플롭 구조로 구현된 RAM의 한 종류로 역시 쓰기가 가능하다.
- DRAM은 커패시터에 전하를 저장하는 RAM의 한 종류로 재충전(리프레시)이 필요하지만 쓰기가 가능하다.
컴퓨터의 하드웨어는 크게 데이터를 처리하는 중앙처리장치와, 외부와 데이터를 주고받는 입출력장치로 나눌 수 있다.
중앙처리장치는 연산과 제어 기능을 모두 포함하는 처리 주체이고, 입출력장치는 사용자·주변기기와의 데이터 교환을 담당한다.
- 연산장치와 제어장치는 중앙처리장치 내부의 하위 구성 요소이지 컴퓨터 전체를 아우르는 분류가 아니다.
- 중앙처리장치와 보조기억장치만으로는 입출력 기능이 빠져 컴퓨터 구성을 대표하지 못한다.
- 주기억장치와 보조기억장치는 기억장치 내부의 분류일 뿐 컴퓨터 전체 구성 분류가 아니다.


