これは後世に語り継がれるべき書籍です。
一通り読んでみて、参考になる箇所がいくつもありました。
私はまだまだ修行中の身ですが、こちらには感銘いたしました。
ただ、初心者の方がいきなり読む書籍ではないと思いますので、まずは他の書籍で基礎知識を固めてから読んでいただけると理解が深まります。
ぜひ一度は読んでいただきたいです。
無料のKindleアプリをダウンロードして、スマートフォン、タブレット、またはコンピューターで今すぐKindle本を読むことができます。Kindleデバイスは必要ありません。
ウェブ版Kindleなら、お使いのブラウザですぐにお読みいただけます。
携帯電話のカメラを使用する - 以下のコードをスキャンし、Kindleアプリをダウンロードしてください。
ハッカーのたのしみ: 本物のプログラマはいかにして問題を解くか 単行本 – 2004/9/1
ヘンリー S.ウォーレン ジュニア
(著),
滝沢 徹
(翻訳)
このページの読み込み中に問題が発生しました。もう一度試してください。
{"desktop_buybox_group_1":[{"displayPrice":"¥5,399","priceAmount":5399.00,"currencySymbol":"¥","integerValue":"5,399","decimalSeparator":null,"fractionalValue":null,"symbolPosition":"left","hasSpace":false,"showFractionalPartIfEmpty":true,"offerListingId":"4QvBlinotZ82S%2B3ME6cl%2Bz4gunF0WXks%2Be%2FsCDr3xcW%2Bvpp5uoHdR4fZOkD%2BhJw%2BQdj8W3DnLwJH9sP2FYHhmLL1%2BaA5Ur69%2BBmpVWE3X9OmO4AvlGAHpqDyrB%2FM81N25ZfoD9OoaoFlsMTPlxD5rEMiYgA117Dz7jAGBVuH22pZ5xGq8RNEvQ%3D%3D","locale":"ja-JP","buyingOptionType":"NEW","aapiBuyingOptionIndex":0}]}
購入オプションとあわせ買い
- 本の長さ321ページ
- 言語日本語
- 出版社エスアイビー・アクセス
- 発売日2004/9/1
- ISBN-104434046683
- ISBN-13978-4434046681
よく一緒に購入されている商品
対象商品: ハッカーのたのしみ: 本物のプログラマはいかにして問題を解くか
¥5,399¥5,399
3月 24 - 25 日にお届け
残り1点 ご注文はお早めに
総額: $00$00
当社の価格を見るには、これら商品をカートに追加してください。
ポイントの合計:
pt
もう一度お試しください
追加されました
spCSRF_Treatment
両方をカートに追加する
一緒に購入する商品を選択してください。
この商品をチェックした人はこんな商品もチェックしています
ページ: 1 / 1 最初に戻るページ: 1 / 1
商品の説明
メディア掲載レビューほか
ハッカーのたのしみ
グラフィックス処理のような膨大な演算が繰り返し発生するプログラムでは,最小のステップ数で処理を終えるコードが欠かせない。組み込み用途のように非力なCPUで高速な処理が求められる場合も同様だ。本書はそうした贅肉のないコードの編み方を数式とCによる実例で解説している。中心となるのは加減乗除など最小粒度のプログラミング。CPUや言語処理系のクセに応じて複数例が示される。実用という面では,ソフトウェアよりむしろハードウェア開発者にとって有益な情報だろう。
グラフィックス処理のような膨大な演算が繰り返し発生するプログラムでは,最小のステップ数で処理を終えるコードが欠かせない。組み込み用途のように非力なCPUで高速な処理が求められる場合も同様だ。本書はそうした贅肉のないコードの編み方を数式とCによる実例で解説している。中心となるのは加減乗除など最小粒度のプログラミング。CPUや言語処理系のクセに応じて複数例が示される。実用という面では,ソフトウェアよりむしろハードウェア開発者にとって有益な情報だろう。
(日経バイト 2004/12/01 Copyright©2001 日経BP企画..All rights reserved.)
-- 日経BP企画
登録情報
- 出版社 : エスアイビー・アクセス (2004/9/1)
- 発売日 : 2004/9/1
- 言語 : 日本語
- 単行本 : 321ページ
- ISBN-10 : 4434046683
- ISBN-13 : 978-4434046681
- Amazon 売れ筋ランキング: - 496,089位本 (本の売れ筋ランキングを見る)
- - 10,945位電気・通信 (本)
- カスタマーレビュー:
カスタマーレビュー
星5つ中4.2つ
5つのうち4.2つ
25グローバルレーティング
評価はどのように計算されますか?
全体的な星の評価と星ごとの割合の内訳を計算するために、単純な平均は使用されません。その代わり、レビューの日時がどれだけ新しいかや、レビューアーがAmazonで商品を購入したかどうかなどが考慮されます。また、レビューを分析して信頼性が検証されます。
上位レビュー、対象国: 日本
レビューのフィルタリング中にエラーが発生しました。ページを再読み込みしてください。
- 2012年6月28日に日本でレビュー済みAmazonで購入効率的なビット操作のテクニック集です。
扱うデータはバイトやワード。
ほかに配列が数カ所出てくるだけ。
掲載コードも20行程度が大半です。
【1章〜7章】(140頁)
基本的なビット検査・操作。
・最右の連続した1のビットを0にする。(例:01011000 => 01000000)
((x|(x-1))+1)&x
・32ビットワードx中の1のビットの数を数える。(例:0xBC637EFF => 23)
x = (x & 0x55555555) + ((x >> 1) & 0x55555555);
x = (x & 0x33333333) + ((x >> 2) & 0x33333333);
x = (x & 0x0F0F0F0F) + ((x >> 4) & 0x0F0F0F0F);
x = (x & 0x00FF00FF) + ((x >> 8) & 0x00FF00FF);
x = (x & 0x0000FFFF) + ((x >>16) & 0x0000FFFF);
など。
【8章〜11章】(100頁)
乗算、除算、指数関数、対数関数など、数学的演算を整数上で実装する技法。
とくに除算には70頁も費やします。
【12章〜16章】(70頁)
-2進数、-1+i進数、グレイコードなど、変則的な数の表現方法。空間を埋め尽くす曲線(ヒルベルト曲線)の表現方法。浮動点小数の表現方法。
ヒルベルト曲線(CGに関係する)を除けば、実用には縁がなさそうな内容です。
おまけみたいなものでしょうか。
-----
本書は、MIT AIラボのHAKMEM(1972年)(ネットで読める)や、Knuthをとくに参照しています。
限られたプログラマが限られたリソースをやり繰りしてプログラミングしていた時代には、本書に挙げられた技法は実用に直結していたのでしょう。
現代でも、コンパイラのバックエンドや、CG、組み込みシステムなど、分かりやすさを度外視してでもビット操作の効率が最優先されるプログラミングには、そのまま役に立ちそうです。
その他の大半の職業プログラミングでは、これらの技法が必要となる場面は少ないと思いますが、頭の体操によいと思います。
- 2019年9月4日に日本でレビュー済みAmazonで購入乗算除算が遅いと聞いたのでじゃあビット演算すれば速くなるんじゃないかという単純な考えでビット演算の手法を得ようと本書に手を出しました。
実際普通に演算するよりビット演算するほうが高速になるような手法は多くあった。
でも最適化をかけると結局コンパイラがビット演算に変換してくれて速度はほぼ同等。可読性を著しく下げるだけの結果になるものばかりだった。
高速化したいだけの人にとっては読むのにかかる時間と得られるものが釣り合ってないと感じる。
- 2006年4月27日に日本でレビュー済みAmazonで購入素晴らしい内容であり、星の数による評価はもちろん五つです。買って良かったと思います。「計算をビット演算のレベルに落として色々やる」という内容(しかも洗練されたもの)です。濃い勉強になりました。そんな本なので、レビューで普通に褒めるのでは正直言ってつまんないし熱意のある初学者にとって参考にならない。だから、このレビューでは対象読者層の説明と些細な不満の吐露をやろうと思う。
(1)
本書の内容は普通の大学の教科書レベルの話ではありません。そんなものよりも高度な内容です。「Cは難しいからJavaが好き」なんて学生や教員にとっては今は買うべき本ではありません(難しくて読めないでしょう)。
(2)
本書を読むためにプログラミング言語やプロセッサの知識が強く要求されるわけではありません。どちらかと言うと論理数学の知識や数学の証明を文脈を自分で埋めながら読む技術が要求されます。と、いうのも、「事実」は書かれていても「証明」は省略されているんですから。後者ができるならプログラミングの知識はそれほど要らないと思います。
(3)
一部の章は非常に読みにくいと思います(一章とか)。評者の推測では、この読みにくさは直訳どころか逐語訳が行われていることに起因します。僕は「あ、ここはきっと"if and only if"を逐語訳したんだろうな」などと推測しながら読みました。日本語の文章を英語に置き換えて読むとわかりやすいと思います。訳が悪い章が最初に来ているので、最初だけ読んで挫折しないように注意してね。
- 2018年4月20日に日本でレビュー済みAmazonで購入【レビューの前に】
電子情報系の大学生です。ハードウェアやソフトウェアの知識は,ちょこっとある程度です。
職業としてプログラムを書いたことがありませんが,C言語でのマイコン制御プログラムは書いたことがあります。
高度なビット演算などが載っていると聞いて,この本を読んでみました。
【レビュー】
書かれている内容は,宣伝文などからわかるように,使える場面が頻繁にあるようなテクニックではありません。
むしろ,使える場面が絶対に来ないような人も,開発言語によってはあると思います。
オープンソースのライブラリをくっつけてくっつけて,プログラムしているような分野の人には,全く必要ない本です。
しかしながら,将棋やチェス,オセロの対局ソフトで使われるビットボードの操作など,高速化が最優先されるようなプログラムを書きたいときに必要になるテクニックばかりが載っています。
本に載っている内容を実際に試してみると,最適化の有無やその「高速化された部分以外のコード」での変化が激しく,むしろ遅くなることが多々あります。
(考察するには,CPUのパイプラインやキャッシュなどの高速化技術,ハードの知識が必要だと思われます)
買うときも挑戦的だと思いましたが,私には正直,この本を買うのは早すぎたかなと思います。
マイコンのプログラミングで限界に挑戦したくなったときに,また掻い摘んで読みたいと思います。
後述の理由から,私はこの本を買って後悔してはいません。
【数学好きな方へもおすすめ?】
学校で数学好きな人にこの本を見せたら,非常に興味を持っていました。
「わくわくしそうな本」だそうです。(発言そのまま)
ハードウェアの知識が必要になりますが,テクニックの数学的な証明が載っていないため,考察するのも「たのしみ」になるかと思います。
【最後に】
タイトル通り,「ハッカー」のための本です。「数学好きな」がつくと思いますが。
- 2010年11月25日に日本でレビュー済みAmazonで購入最高のビット演算での最適化本です。ビット演算を駆使して現代ではとるにたらないと思えるような様々な最適化問題に挑戦していきます。その涙ぐましい努力の結晶の寄せ集めがこの本です。ハッカー魂を見せ付けられます。この本を完全に理解し内容を丸暗記した時、私はプログラミング初心者を卒業できると断言できます。
とにかく手元に置いておかないと損をする本であることは確かです。
それでは次回の別の本のレビューを御期待下さい。サヨナラ、サヨナラ、サヨナラ...
- 2017年9月7日に日本でレビュー済み英語版では第二版が出ております.
C言語の用に型チェックが適当な言語では大変役立つ
文字と数字の変換の高速化が目から鱗だった
- 2015年12月4日に日本でレビュー済み本書に載っているコードは基本的にC言語であるが、
できることならアセンブラのプログラミング環境を手元に用意して色々試して欲しい。
本文中に出てくる命令数等の話は仮想的なRISC環境を想定しているが、
x86だろうと余分なpush-popやmovを取り除けばだいたい当てはまる話なのでより深く納得できる。