해커의 기쁨(제2판)

헨리 워렌 | 제이펍 | 2021년 07월 21일 | PDF

이용가능환경 : Windows/Android/iOS 구매 후, PC, 스마트폰, 태블릿PC에서 파일 용량 제한없이 다운로드 및 열람이 가능합니다.

구매

종이책 정가 32,000원

전자책 정가 22,400원

판매가 22,400원

도서소개

우아한 프로그래밍, 바로 써먹는 알고리즘!

프로그래밍 핵(hack) 모음집. 프로그래머가 좀 더 우아하고 효율적인 소프트웨어를 만드는 데 도움이 되는 시간 절약 기법들과 알고리즘, 요령들이 담겼다. 이 책이 제시하는 핵들은 실용적이면서 흥미롭고, 예기치 못한 측면까지 보여주면서 프로그래밍에 대한 좀 더 깊은 통찰을 제공한다.

저자소개

저자 : 헨리 워렌
Henry S. Warren, Jr.
헨리 워렌은 IBM에서 50년간 근무한 개발자로, IBM 704에서 PowerPC와 그 이후의 제품들을 다루었다. 그는 Jack Schwartz 아래에서 다양한 군사 명령 및 통제 시스템과 SETL(SET Language) 프로젝트에 참여했다. 1973년부터는 컴파일러와 컴퓨터 아키텍처에 초점을 두고 IBM의 연구부서에서 일했다. 현재는 엑사플롭을 목표로 한 슈퍼컴퓨터 프로젝트에서 일하고 있다. 그는 New York University의 Courant Institute에서 전산학 박사 학위를 받았다.

역자 : 류광
옮긴이 류광은 1996년부터 활동해온 프로그래밍 서적 전문 번역가로, 『Game Programming Gems』 시리즈와 Knuth 교수의 고전 『컴퓨터 프로그래밍의 예술』(The Art of Computer Programming) 시리즈, Bjarne Stroustrup의 『C++로 배우는 프로그래밍의 원리와 실제』(Programming: Principles and Practice Using C++)를 비롯한 다양한 분야의 프로그래밍 서적을 50여 권 넘게 번역했다. 번역과 프로그래밍 외에 소프트웨어 문서화에도 많은 관심을 가지고 있으며, 수많은 오픈소스 프로젝트들의 표준 문서 형식으로 쓰이는 DocBook의 국내 사용자 모임인 닥북 한국(http://docbook.kr/)의 일원이다.

목차소개

Chapter 1 소개
1-1 표기법
1-2 명령 집합과 실행 시간 모형

Chapter 2 기초
2-1 제일 오른쪽 비트 다루기
2-2 논리 연산과 결합된 덧셈
2-3 논리식과 산술식의 부등
2-4 절댓값 함수
2-5 두 정수의 평균
2-6 부호 확장
2-7 부호 없는 오른쪽 자리이동으로 부호 있는 오른쪽 자리이동 구현
2-8 부호 함수
2-9 세 값 비교 함수
2-10 부호 전달 함수
2-11 “0은 2**n을 뜻함” 필드의 복호화
2-12 비교 술어
2-13 넘침 검출
2-14 더하기, 빼기, 곱하기 결과의 조건 부호
2-15 순환 자리이동
2-16 두 배 길이 더하기·빼기 명령
2-17 두 배 길이 자리이동
2-18 다중 바이트 덧셈, 뺄셈, 절댓값
2-19 차 또는 0(doz), 최댓값(max), 최솟값(min)
2-20 레지스터 교환
2-21 둘 이상의 값들을 교대로 설정
2-22 부울 분해 공식
2-23 열여섯 가지 이항 부울 연산을 모두 구현하는 명령들

Chapter 3 2의 거듭제곱 경계들
3-1 알려진 2의 거듭제곱의 배수로 반올림·반내림
3-2 그다음 2의 거듭제곱으로의 반올림·반내림
3-3 2의 거듭제곱 경계 횡단 검출

Chapter 4 산술 경계
4-1 정수 경계 점검
4-2 더하기와 빼기를 통한 경계 전파
4-3 논리 연산을 통한 경계 전파

Chapter 5 비트 개수 세기
5-1 값이 1인 비트 세기
5-2 패리티
5-3 선행 0 개수 세기
5-4 후행 0 개수 세기

Chapter 6 워드 검색
6-1 첫 0-바이트 찾기
6-2 주어진 길이의 첫 1-비트열 찾기
6-3 가장 긴 1-비트열 찾기
6-4 가장 짧은 1-비트열 찾기

Chapter 7 비트와 바이트의 재배치
7-1 비트, 바이트 뒤집기
7-2 비트 뒤섞기
7-3 비트 행렬의 전치
7-4 압축 또는 일반화된 추출
7-5 확장 또는 일반화된 삽입
7-6 압축과 확장을 위한 하드웨어 알고리즘
7-7 일반적인 치환과 ‘양과 염소’ 연산
7-8 재배치와 색인 변환
7-9 LRU 알고리즘

Chapter 8 곱셈
8-1 다중워드 곱셈
8-2 64비트 곱의 상위 절반
8-3 부호 있는/없는 상위 곱의 상호 변환
8-4 상수 곱하기

Chapter 9 정수 나눗셈
9-1 소개
9-2 다중워드 나눗셈
9-3 부호 있는 나눗셈을 이용한 부호 없는 짧은 나눗셈
9-4 부호 없는 긴 나눗셈
9-5 긴 나눗셈을 이용한 이중워드 나눗셈

Chapter 10 상수가 제수인 정수 나눗셈
10-1 알려진 2의 거듭제곱이 제수인 부호 있는 나눗셈
10-2 알려진 2의 거듭제곱이 제수인 나눗셈의 부호 있는 나머지 구하기
10-3 제수가 2의 거듭제곱이 아닌 부호 있는 나눗셈과 나머지
10-4 제수가 2 이상인 부호 있는 나눗셈
10-5 제수가 -2 이하인 부호 있는 나눗셈
10-6 컴파일러에 통합
10-7 기타 주제들
10-8 부호 없는 나눗셈
10-9 제수가 1 이상인 부호 없는 나눗셈
10-10 컴파일러에 통합(부호 없는 경우)
10-11 기타 주제들(부호 없는 경우)
10-12 법·바닥 나눗셈에 대한 적용 가능성
10-13 비슷한 방법들
10-14 마법의 수들의 예
10-15 간단한 파이썬 코드
10-16 제수가 상수인 완전 나눗셈
10-17 상수로 나눈 나머지가 0인지 점검
10-18 상위 곱하기 명령을 사용하지 않는 방법들
10-19 숫자들의 합산을 통한 나머지 계산
10-20 곱셈과 오른쪽 자리이동을 이용한 나머지 계산
10-21 완전 나눗셈으로의 변환
10-22 시간 측정
10-23 제수가 3인 나눗셈을 위한 회로

Chapter 11 기본 함수 몇 가지
11-1 정수 제곱근
11-2 정수 세제곱근
11-3 정수 거듭제곱
11-4 정수 로그

Chapter 12 색다른 기수의 수체계
12-1 기수 -2
12-2 기수 -1 + i 수체계
12-3 기타 기수들
12-4 가장 효율적인 기수는?

Chapter 13 그레이 부호
13-1 그레이 부호
13-2 그레이 부호화 정수의 증가
13-3 음이진 그레이 부호
13-4 간략한 역사 및 응용

Chapter 14 순환 중복 검사(CRC)
14-1 소개
14-2 이론
14-3 실제 응용

Chapter 15 오류 보정 부호
15-1 소개
15-2 해밍 부호
15-3 정보 비트 32개용 SEC-DED를 위한 소프트웨어
15-4 오류 보정에 대한 좀 더 일반적인 고찰

Chapter 16 힐베르트 곡선
16-1 힐베르트 곡선의 생성을 위한 재귀적 알고리즘
16-2 힐베르트 곡선을 따라 이동한 거리에 따른 좌표 계산
16-3 힐베르트 곡선의 한 점까지의 거리
16-4 힐베르트 곡선에서의 좌표 증가
16-5 비재귀적 생성 알고리즘
16-6 그 외의 공간 채움 곡선
16-7 응용

Chapter 17 부동소수점
17-1 IEEE 형식
17-2 부동소수점-정수 상호 변환
17-3 정수 연산을 이용한 부동소수점 수들의 비교
17-4 제곱근의 역수 근사 루틴
17-5 선행 숫자들의 분포
17-6 그 외의 여러 값들

Chapter 18 소수를 위한 공식들
18-1 소개
18-2 윌런스의 공식
18-3 워멜의 공식
18-4 그 밖의 어려운 함수에 대한 공식들
연습문제 해답

부록 A 4비트 컴퓨터를 위한 산술 연산표
부록 B 뉴턴의 반복법
부록 C 이산 함수 그래프 모음
C-1 정수에 대한 논리 연산들의 그래프
C-2 덧셈, 뺄셈, 곱셈 그래프
C-3 나눗셈 관련 함수들의 그래프
C-4 압축, SAG, 왼쪽 순환 자리이동 함수의 그래프
C-5 몇 가지 단항 함수들의 그래프

참고문헌
찾아보기

회원리뷰 (0)

현재 회원리뷰가 없습니다.

첫 번째 리뷰를 남겨주세요!