반디앤루니스 인터넷서점

네비게이션 실시간 인기 책

    해커의 기쁨[제2판]

    해커의 기쁨[제2판] 비트와 바이트 그리고 알고리즘

    원제 : Hacker’s Delight Second Edition

    • 헨리 워렌 저
    • 류광 역
    • 제이펍
    • 2013년 07월 22일
    • 정가
      32,000원
    • 판매가
      32,000 [0% 할인]
    • 결제 혜택
      무이자
    • 적립금
      960원 적립 [3%P]

      NAVER Pay 결제 시 네이버페이 포인트 5% 적립 ?

    품절된 상품입니다.

    회원리뷰
    - [0]
    ISBN: 9788994506692 576쪽 188 x 245 (㎜)

    지금 이책은

    • 판매지수 : 307

    이 분야의 베스트셀러

    이 책과 함께 구매한 책

    출판사 리뷰

    출판사 서평
    우아한 프로그래밍, 바로 써먹는 알고리즘!
    『해커의 기쁨(제2판)』은 헨리 워렌이 다시금 만들어 낸, 프로그래밍 핵(hack)들의 거부할 수 없는 모음집이다. 프로그래머가 좀 더 우아하고 효율적인 소프트웨어를 만드는 데 도움이 되는 시간 절약 기법들과 알고리즘, 요령들로 가득한 이 책은 프로그래밍에 대한 좀 더 깊은 통찰도 제공한다. 워렌의 핵들은 매우 실용적이면서도 본질적으로 흥미로우며, 위대한 퍼즐의 해법과 비슷하게 가끔은 예기치 못한 측면도 보여준다. 이들은 한마디로 말해서, 뭔가 개선할 기회가 생기면 마음이 들뜨는 모든 프...
    우아한 프로그래밍, 바로 써먹는 알고리즘!
    『해커의 기쁨(제2판)』은 헨리 워렌이 다시금 만들어 낸, 프로그래밍 핵(hack)들의 거부할 수 없는 모음집이다. 프로그래머가 좀 더 우아하고 효율적인 소프트웨어를 만드는 데 도움이 되는 시간 절약 기법들과 알고리즘, 요령들로 가득한 이 책은 프로그래밍에 대한 좀 더 깊은 통찰도 제공한다. 워렌의 핵들은 매우 실용적이면서도 본질적으로 흥미로우며, 위대한 퍼즐의 해법과 비슷하게 가끔은 예기치 못한 측면도 보여준다. 이들은 한마디로 말해서, 뭔가 개선할 기회가 생기면 마음이 들뜨는 모든 프로그래머에게 하나의 기쁨이다.
    제2판에는 다음과 같은 방대한 내용이 새로이 추가되었다.
    ㆍ 순환 중복 검사(CRC)에 대한 새로운 장 ― 흔히 쓰이는 CRC-32 부호를 위한 루틴들도 포함
    ㆍ 오류 보정 부호(ECC)에 대한 새로운 장 ― 해밍 부호를 위한 루틴들도 포함
    ㆍ 상수를 제수로 한 정수 나눗셈에 대한 좀 더 자세한 내용 ― 자리이동과 더하기 명령만 사용하는 방법들도 포함
    ㆍ 몫을 구하지 않고 나머지를 계산하는 방법
    ㆍ 개체수(1-비트 개수) 및 선행 0-비트 개수에 대한 좀 더 자세한 내용
    ㆍ 배열 개체수
    ㆍ 압축과 확장을 위한 새 알고리즘들
    ㆍ LRU 알고리즘
    ㆍ 부동소수점과 정수의 상호 변환
    ㆍ 부동소수점 역제곱근 근사 루틴
    ㆍ 이산 함수 그래프 모음
    ㆍ 많이들 기다렸던 연습문제와 해답
    추천사
    이 책은 컴퓨터 산술의 깊고 어두운 비밀을 말해준다고 약속하는 최초의 책으로, 실제로도 그런 비밀을 낱낱이 밝힌다. 이 책에는 내가 아는 것보다 훨씬 많은 요령이 들어 있다. 라이브러리 개발자와 컴파일러 작성자, 그리고 우아한 해킹을 사랑하는 이에게 신의 선물과도 같은 이 책은 책장의 커누스 책 옆에 꽂아두기에 손색이 없다. 제1판이 나온 지 10년 동안, Sun과 Google에서 일하면서 이 책을 아주 유용하게 사용했다. 그리고 제2판에 수록된 새로운 내용 전부가 나를 전율케 한다.
    _ 조슈어 블로크(Joshua Bloch)
    처음 이 책을 보았을 때 다른 컴퓨터에 침입하는 방법을 가르치는 책이거나(그럴 것 같지는 않았지만) 아니면 작은 프로그래밍 요령들을 대충 그러모은 책일 것이라고 짐작했다. 알고 보니 후자이긴 하지만, 해당 주제를 거의 백과사전 수준으로 상세히 다룬 책이었다. 제2판에는 새로운 주요 주제를 다루는 두 개의 장이 추가되었으며, 전체적으로 수십 가지의 작은 요령들이 추가되었다. 그중 하나는 내가 이진 검색 알고리즘에 바로 써먹었는데, 바로 두 정수의 평균을 넘침(overflow)이 일어날 걱정 없이 계산하는 기법이다. 책 제목대로, 해커로서의 나는 실제로 기쁨을 얻었다.
    _ 가이 스틸(Guy Steele)

    추천글

    이 책은 컴퓨터 산술의 깊고 어두운 비밀을 말해준다고 약속하는 최초의 책으로, 실제로도 그런 비밀을 낱낱이 밝힌다. 이 책에는 내가 아는 것보다 훨씬 많은 요령이 들어 있다. 라이브러리 개발자와 컴파일러 작성자, 그리고 우아한 해킹을 사랑하는 이에게 신의 선물과도 같은 이 책은 책장의 커누스 책 옆에 꽂아두기에 손색이 없다. 제1판이 나온 지 10년 동안, Sun과 Google에서 일하면서 이 책을 아주 유용하게 사용했다. 그리고 제2판에 수록된 새로운 내용 전부가 나를 전율케 한다.
    _ 조슈어 블로크(Joshua Bloch)


     


    처음 이 책을 보았을 때 다른 컴퓨터에 침입하는 방법을 가르치는 책이거나(그럴 것 같지는 않았지만) 아니면 작은 프로그래밍 요령들을 대충 그러모은 책일 것이라고 짐작했다. 알고 보니 후자이긴 하지만, 해당 주제를 거의 백과사전 수준으로 상세히 다룬 책이었다. 제2판에는 새로운 주요 주제를 다루는 두 개의 장이 추가되었으며, 전체적으로 수십 가지의 작은 요령들이 추가되었다. 그중 하나는 내가 이진 검색 알고리즘에 바로 써먹었는데, 바로 두 정수의 평균을 넘침(overflow)이 일어날 걱정 없이 계산하는 기법이다. 책 제목대로, 해커로서의 나는 실제로 기쁨을 얻었다.
    _ 가이 스틸(Guy Steele)


    저자 소개

    헨리 워렌

    • 구분 : 저서
    • 국적 : 기타
    • 분류 : 과학/공학 저자
    • 인기지수 : 19
    최근저서

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

    역자 소개

    류광

    • 국적 : 대한민국
    • 분류 : 과학/공학 저자 , 기타
    • 인기지수 : 412

    1996년부터 활동해온 프로그래밍 서적 전문 번역가로, 커누스 교수의 고전 『컴퓨터 프로그래밍의 예술(The Art of Computer Programming)』 시리즈를 비롯해 다양한 분야의 프로그래밍 서적을 50권 번역했다. 게임 및 그래픽 프로그래밍 관련 번역서로는 본서의 전작인 『DirectX 11을 이용한 3D 게임 프로그래밍 입문』과 『Game Programming Gems』 시리즈, 『Game Engine Gems』 시리즈, 『3D 게임 프로그래밍 & 컴퓨터 그래픽을 위한 수학』 1, 2판 등이 있다.
    번역과 프로그래밍 외에 소프트웨어 문서화에도 관심이 많으며, 수많은 오픈소스 프로젝트의 표준 문서 형식으로 쓰이는 DocBook의 국내 사용자 모임인 닥북 한국(http://docbook.kr/)의 일원이다.
    현재 번역서 정보 사이트 occam’s Razor(http://occamsrazr.net/)와 Game Programming Gems 시리즈를 비롯한 게임 개발서들의 독자 지원 및 논의 사이트 GpgStudy(http://www.gpgstudy.com/)를 운영하고 있다.

    책 속에서

    이번 절에서는 오른쪽으로 압축 함수와 그 역함수를 위한 하드웨어 지향적 알고리즘들을 제시한다([Zadeck]). 이전 절의 알고리즘들처럼 이번 절의 알고리즘들은 그 실행 시간이 컴퓨터의 워드 크기의 로그에 비례한다. 이 알고리즘들은 하드웨어에서 구현하기에 적합하지만, 기본 RISC 명령들로 구현한다면 빠른 코드가 나오지 않는다. 따라서 C나 기계어 코드는 제시하지 않고 작동 방식만 설명하겠다.
    _181

     

    지금 풀고자 하는 문제는, 캐시 적중 실패(cache misss; 즉, 특정 주소에 있는 워드가 요청되었는데 그 주소의 자료가 캐시에 없는 상황)가 발생했을 때, 캐시의 블록(또는, 캐시 쪽 용어로 라인line)들 중 요청된 자료로 대체할 것을 컴퓨터가 어떻게 결정하는가이다. 이상적인 선택은 향후 제일 오랫동안 참조되지 않을 캐시 라인의 자료를 대체하는 것이다. 그러나 미래를 알 수는 없는 일이므로 추측이 필요하다. 다양한 응용 프로그램에 대한 최선의 추측으로 간주되는 것이 바로 최근 최소 사용(least recently used, LRU) 방침이다.
    _192

     

    CRC(cyclic redundancy check), 즉 순환 중복 검사는 디지털 자료의 오류를 검출하는 기법으로, 검출한 오류를 보정하기 위한 것은 아니다. CRC는 주로 자료 전송에 쓰인다. CRC 기법에서
    는 특정한 개수의 검사 비트(check bit)들을 전송할 메시지에 추가한다. 그런 비트들을 체크섬(checksum)이나 해시 부호(hash code)라고 부르기도 한다. 수신자는 검사 비트들이 자료와 부합하는지를 점검함으로써 자료 전송 도중에 오류가 발생했는지의 여부를 어느 정도의 확률로 알아낼 수 있다.
    _365

     

    공간 채움 곡선은 화상 처리(이미지 처리) 분야에서 압축, 망점 처리(halftoning), 재질 분석(textural analysis) 등에 쓰인다([L&S]). 또 다른 응용 분야는 그래픽 렌더링 기법의 하나인 광선 추적(ray tracing)의 컴퓨터 성능 개선이다. 광선 추적 기법에서는 광선들을 장면 전체에 통상적인 래스터 주사선(scanline) 순서로(즉, 화면의 왼쪽에서 오른쪽으로, 그리고 위에서 아래로) 투사한다. 묘사하고자 하는 장면의 데이터베이스에 속한 어떤 물체에 광선이 닿으면, 그 지점에서의 물체의 색상 및 기타 속성들을 이용해서 그 지점에 해당하는 픽셀의 조명 값을 계산한다.
    _424

     

    젊은 학생들이 흔히 그렇듯이, 나도 한때는 소수素數(prime number)에 빠져서 소수를 위한 공식을 찾아 헤맸다. 나는 ‘공식’에서 유효한 것으로 간주되는 연산들이 무엇인지 정확히 알지 못했으며, 내가 찾는 함수가 정확히 무엇인지도 알지 못했다. 그냥 n번째 소수를 n 또는 그 이전 소수(들)로 표현하는 어떤 공식일 수도 있고, 모든 소수는 아니더라도 어떤 소수들을 산출하는 공식일 수도 있겠다. 그러한 애매모호함이 있긴 하지만, 이 문제에 대해 알려진 사실들을 여기서 조금이나마 논의하고자 한다.
    _445

    목차

    목차
    Chapter 1 소개 / 1
    1-1 표기법 1
    1-2 명령 집합과 실행 시간 모형 6
    Chapter 2 기초 / 13
    2-1 제일 오른쪽 비트 다루기 13
    2-2 논리 연산과 결합된 덧셈 19
    2-3 논리식과 산술식의 부등 21
    2-4 절댓값 함수 22
    2-5 두 정수의 평균 22
    2-6 부호 확장 23
    2-7 부호 없는 오른쪽 자리이동으로 부호 있는 오른쪽 자리이동 구현 24
    2-8 부호 함수 25
    2-9 세 값 비교 함수 25
    2-10 부호 전달 함수 26
    2-11 “0은 2**n을 뜻함” 필드의 복호화 27
    2-12 비교 술어 27
    2-13 넘침 검출 33
    2-14 더하기, 빼기, 곱하기 결과의 조건 부호 43
    2-15 순환 자리이동 44
    2-16 두 배 길이 더하기·빼기 명령 45
    2-17 두 배 길이 자리이동 46
    2-18 다중 바이트 덧셈, 뺄셈, 절댓값 47
    2-19 차 또는 0(doz), 최댓값(max), 최솟값(min) 49
    2-20 레지스터 교환 54
    2-21 둘 이상의 값들을 교대로 설정 57
    2-22 부울 분해 공식 60
    2-23 열여섯 가지 이항 부울 연산을 모두 구현하는 명령들 62
    Chapter 3 2의 거듭제곱 경계들 / 69
    3-1 알려진 2의 거듭제곱의 배수로 반올림·반내림 69
    3-2 그다음 2의 거듭제곱으로의 반올림·반내림 70
    3-3 2의 거듭제곱 경계 횡단 검출 73
    Chapter 4 산술 경계 / 77
    4-1 정수 경계 점검 77
    4-2 더하기와 빼기를 통한 경계 전파 80
    4-3 논리 연산을 통한 경계 전파 84
    Chapter 5 비트 개수 세기 / 91
    5-1 값이 1인 비트 세기 91
    5-2 패리티 108
    5-3 선행 0 개수 세기 111
    5-4 후행 0 개수 세기 121
    Chapter 6 워드 검색 / 133
    6-1 첫 0-바이트 찾기 133
    6-2 주어진 길이의 첫 1-비트열 찾기 140
    6-3 가장 긴 1-비트열 찾기 143
    6-4 가장 짧은 1-비트열 찾기 145
    Chapter 7 비트와 바이트의 재배치 / 149
    7-1 비트, 바이트 뒤집기 149
    7-2 비트 뒤섞기 161
    7-3 비트 행렬의 전치 163
    7-4 압축 또는 일반화된 추출 173
    7-5 확장 또는 일반화된 삽입 180
    7-6 압축과 확장을 위한 하드웨어 알고리즘 181
    7-7 일반적인 치환과 ‘양과 염소’ 연산 186
    7-8 재배치와 색인 변환 191
    7-9 LRU 알고리즘 192
    Chapter 8 곱셈 / 197
    8-1 다중워드 곱셈 197
    8-2 64비트 곱의 상위 절반 200
    8-3 부호 있는/없는 상위 곱의 상호 변환 201
    8-4 상수 곱하기 202
    Chapter 9 정수 나눗셈 / 207
    9-1 소개 207
    9-2 다중워드 나눗셈 211
    9-3 부호 있는 나눗셈을 이용한 부호 없는 짧은 나눗셈 216
    9-4 부호 없는 긴 나눗셈 219
    9-5 긴 나눗셈을 이용한 이중워드 나눗셈 225
    Chapter 10 상수가 제수인 정수 나눗셈 / 233
    10-1 알려진 2의 거듭제곱이 제수인 부호 있는 나눗셈 233
    10-2 알려진 2의 거듭제곱이 제수인 나눗셈의 부호 있는 나머지 구하기 234
    10-3 제수가 2의 거듭제곱이 아닌 부호 있는 나눗셈과 나머지 236
    10-4 제수가 2 이상인 부호 있는 나눗셈 240
    10-5 제수가 -2 이하인 부호 있는 나눗셈 249
    10-6 컴파일러에 통합 251
    10-7 기타 주제들 255
    10-8 부호 없는 나눗셈 259
    10-9 제수가 1 이상인 부호 없는 나눗셈 262
    10-10 컴파일러에 통합(부호 없는 경우) 265
    10-11 기타 주제들(부호 없는 경우) 268
    10-12 법·바닥 나눗셈에 대한 적용 가능성 271
    10-13 비슷한 방법들 271
    10-14 마법의 수들의 예 273
    10-15 간단한 파이썬 코드 274
    10-16 제수가 상수인 완전 나눗셈 274
    10-17 상수로 나눈 나머지가 0인지 점검 283
    10-18 상위 곱하기 명령을 사용하지 않는 방법들 287
    10-19 숫자들의 합산을 통한 나머지 계산 299
    10-20 곱셈과 오른쪽 자리이동을 이용한 나머지 계산 306
    10-21 완전 나눗셈으로의 변환 313
    10-22 시간 측정 315
    10-23 제수가 3인 나눗셈을 위한 회로 316
    Chapter 11 기본 함수 몇 가지 / 319
    11-1 정수 제곱근 319
    11-2 정수 세제곱근 328
    11-3 정수 거듭제곱 329
    11-4 정수 로그 332
    Chapter 12 색다른 기수의 수체계 / 341
    12-1 기수 -2 341
    12-2 기수 -1 + i 수체계 349
    12-3 기타 기수들 352
    12-4 가장 효율적인 기수는? 353
    Chapter 13 그레이 부호 / 355
    13-1 그레이 부호 355
    13-2 그레이 부호화 정수의 증가 358
    13-3 음이진 그레이 부호 360
    13-4 간략한 역사 및 응용 360
    Chapter 14 순환 중복 검사(CRC) / 365
    14-1 소개 365
    14-2 이론 367
    14-3 실제 응용 370
    Chapter 15 오류 보정 부호 / 379
    15-1 소개 379
    15-2 해밍 부호 380
    15-3 정보 비트 32개용 SEC-DED를 위한 소프트웨어 386
    15-4 오류 보정에 대한 좀 더 일반적인 고찰 392
    Chapter 16 힐베르트 곡선 / 405
    16-1 힐베르트 곡선의 생성을 위한 재귀적 알고리즘 406
    16-2 힐베르트 곡선을 따라 이동한 거리에 따른 좌표 계산 410
    16-3 힐베르트 곡선의 한 점까지의 거리 417
    16-4 힐베르트 곡선에서의 좌표 증가 419
    16-5 비재귀적 생성 알고리즘 422
    16-6 그 외의 공간 채움 곡선 423
    16-7 응용 424
    Chapter 17 부동소수점 / 427
    17-1 IEEE 형식 428
    17-2 부동소수점-정수 상호 변환 430
    17-3 정수 연산을 이용한 부동소수점 수들의 비교 434
    17-4 제곱근의 역수 근사 루틴 436
    17-5 선행 숫자들의 분포 439
    17-6 그 외의 여러 값들 441
    Chapter 18 소수를 위한 공식들 / 445
    18-1 소개 445
    18-2 윌런스의 공식 448
    18-3 워멜의 공식 452
    18-4 그 밖의 어려운 함수에 대한 공식들 453
    연습문제 해답 461
    부록 A 4비트 컴퓨터를 위한 산술 연산표 517
    부록 B 뉴턴의 반복법 523
    부록 C 이산 함수 그래프 모음 527
    C-1 정수에 대한 논리 연산들의 그래프 527
    C-2 덧셈, 뺄셈, 곱셈 그래프 529
    C-3 나눗셈 관련 함수들의 그래프 531
    C-4 압축, SAG, 왼쪽 순환 자리이동 함수의 그래프 533
    C-5 몇 가지 단항 함수들의 그래프 534
    참고문헌 539
    찾아보기 548

    배송 시 유의사항

    - 반디앤루니스에서 구매하신 도서는 물류 대행 위탁업체 웅진 북센을 통해 배송됩니다.
     (배송 포장에 "웅진 북센"으로 표기될 수 있습니다.)

    - 구매한 상품의 품질과 배송 관련 문의는 반디앤루니스로 문의 바랍니다.

    - 천재지변 및 택배사의 사정에 따라 배송이 지연될 수 있습니다.

    - 결제(입금) 완료 후 출판사 및 유통사의 사정으로 품절 또는 절판 되어 상품 구입이 어려울 수 있습니다. (별도 안내 예정)

    - 도서산간지역의 경우 추가 배송비가 발생될 수 있습니다.

    반품/교환

    상품 설명에 반품/ 교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다)

    반품/교환

    반품/교환
    반품/교환 방법 홈 > 고객센터 > 자주찾는질문 “반품/교환/환불” 안내 참고 또는 1:1상담게시판
    반품/교환 가능 기간 반품,교환은 배송완료 후 7일 이내, 상품의 결함 및 계약내용과 다를 경우 문제발견 후 30일 이내에 신청가능
    반품/교환 비용 변심 혹은 구매착오의 경우에만 반송료 고객 부담(별도 지정 택배사 없음)
    반품/교환 불가 사유
    • 소비자의 책임 사유로 상품 등이 손실 또는 훼손된 경우
    • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    • 복제가 가능한 상품 등의 포장을 훼손한 경우 : 예)만화책, 잡지, 화보집 등
    • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
    • 전자상거래등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
    • 해외주문 상품(해외 원서)의 경우(파본/훼손/오발송 상품을 제외)
    소비자 피해보상
    환불지연에 따른 배상
    • 상품의 불량에 의한 반품, 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은
      소비자 분쟁해결 기준(공정거래위원회고시)에 준하여 처리됨
    • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의
      소비자 보호에 관한 법률에 따라 처리함
    반품/교환 주소 경기도 파주시 문발로 77, 웅진북센(반디앤루니스)
    • 회사명 : (주)서울문고
    • 대표이사 : 김홍구
    • 개인정보 보호책임자 : 김홍구
    • E-mail : bandi_cs@bnl.co.kr
    • 소재지 : (06168) 서울 강남구 삼성로 96길 6
    • 사업자 등록번호 : 120-81-02543
    • 통신판매업 신고번호 : 제2023-서울강남-03728호
    • 물류센터 : (10881) 경기도 파주시 문발로 77 반디앤루니스
    copyright (c) 2016 BANDI&LUNI'S All Rights Reserved