1장. 최고의 코드를 위해 알아야 할 것
__1.1 ‘GREAT CODE’ 시리즈
__1.2 이 책의 내용
__1.3 이 책의 대상
__1.4 최고의 코드의 특징
__1.5 동작 환경
__1.6 더 많은 정보를 원한다면
2장. 수치 표기법
__2.1 수란 무엇인가?
__2.2 수 체계
__2.3 수치/문자열 변환
__2.4 내부 수치 표현법
__2.5 부호 있는 수와 부호 없는 수
__2.6 2진수의 유용한 속성
__2.7 부호 확장, 0 확장과 축소
__2.8 포화
__2.9 2진화 10진 표기법
__2.10 고정소수점 표기
__2.11 스케일 수치 포맷
__2.12 유리수 표기법
__2.13 더 많은 정보를 원한다면
3장. 2진법 연산과 비트 연산
__3.1 2진수, 16진수의 연산
__3.2 비트 논리 연산
__3.3 2진수와 비트 스트링에 대한 논리 연산
__3.4 유용한 비트 연산
__3.5 쉬프트와 로테이트
__3.6 비트 필드와 묶인 데이터
__3.7 데이터 묶기와 풀기
__3.8 더 많은 정보를 원한다면
4장. 부동소수점 표기
__4.1 부동소수점 연산 소개
__4.2 IEEE 부동소수점 포맷
__4.3 정규화
__4.4 라운딩
__4.5 특별 부동소수점 값
__4.6 부동소수점 예외
__4.7 부동소수점 연산
__4.8 더 많은 정보를 원한다면
5장. 문자 표기법
__5.1 문자 데이터
__5.2 문자열
__5.3 문자셋
__5.4 자신만의 문자셋 설계
__5.5 더 많은 정보를 원한다면
6장 메모리 구조와 접근
__6.1 기본 시스템 구성 요소
__6.2 메모리의 물리적 구조
__6.3 빅 엔디안 구조 vs. 리틀 엔디안 구조
__6.4 시스템 클럭
__6.5 CPU 메모리 접근
__6.6 더 많은 정보를 원한다면
★ 이 책에서 다루는 내용 ★
■ 숫자나 문자열, 고급 자료구조 등을 표기하는 방법을 익혀, 컴퓨터가 각 데이터 타입을 사용하는 데 드는 비용을 파악한다.
■ 컴퓨터가 데이터를 구성하는 방법을 익혀, 데이터를 효율적으로 처리하는 방법을 알아낸다.
■ CPU가 동작하는 방식을 익혀, 컴퓨터가 처리하는 방식대로 동작하는 프로그램 코드를 작성한다. 입출력 장치가 동작하는 방식을 이해하면, 그러한 장치에 접근하는 애플리케이션의 성능을 최대화할 수 있다.
■ 메모리 계층 구조를 최적화해 사용하는 방법을 익혀, 최대한 빠른 프로그램을 작성할 수 있다.
★ 이 책의 대상 독자 ★
이 책을 효과적으로 이용하기 위해서 적어도 한 가지 이상의 절차적 프로그램 언어를 다룰 줄 알아야 한다. C/C++, 파스칼(Pascal, 베이직(BASIC, 어셈블리 언어처럼 많이 사용되는 언어뿐 아니라 에이다(Ada, 모듈러2(Modula-2, 포트란(FORTRAN 같은 언어여도 괜찮다. 또 작은 문제에 대한 명세를 받아서 그 문제에 대한 소프트웨어를 설계하거나 구현할 능력이 있어야 한다. 보통 대학 강의를 한 학기 정도 수강하거나, 독학으로 몇 달만 노력하면 이 책을 공부하는 데 큰 불편함은 없을 것이다.
이 책은 특별한 프로그램 언어를 위한 책은 아니다. 이 책에서 설명하는 개념은 프로그래밍 언어의 종류와 관계없이 적용할 수 있는 것들이다. 여러분의 편의를 위해서 프로그램 예문은 몇 가지 언어(C/C++, 파스칼, 베이직, 어셈블리 등를 번갈아 가면서 사용할 것이다. 이 책을 쓸 때 여러분이 특정 언어를 알 것이라고 가정하지 않았다. 따라서 이 책에서 예시를 제시할 때는 코드에 대한 정확한 설명을 덧붙일 것이므로, 비록 그 언어에 익숙하지 않더라도 관련 설명을 통해서 프로그램의 동작을 충분히 이해할 수 있을 것이다.
이 책은 다양한 예시에서 다음 언어와 컴파일러를 사용했다.
■ C/C++: GCC, 마이크로소프트 비주얼 C++, 볼랜드 C++
■ 파스