タグ

プログラミングに関するyamazのブックマーク (3)

  • 一番右端の立っているビット位置を求める「ものすごい」コード - 当面C#と.NETな記録

    一番右端の立っているビット位置(RightMostBit)を求めるコードで速いのないかなーと探していたら、ものっっっすごいコードに出会ってしまったのでご紹介。2ch のビット演算スレで 32bit 値のコードに出会って衝撃を受けて、その後 64bit 値版のヒントを見つけたのでコードを書いてみました。 この問題は ハッカーのたのしみ―物のプログラマはいかにして問題を解くか (Google book search で原著 Hacker's delight が読めたのでそれで済ませた) で number of trailing zeros (ntz) として紹介されています。bit で考えたときに右側に 0 がいくつあるかを数えるもの。1 だと 0、2 だと 1、0x80 なら 7、12 なら 2 といったぐあい。0 のときに表題どおりの問題として考えるといくつを返すの?ってことになるので、

    一番右端の立っているビット位置を求める「ものすごい」コード - 当面C#と.NETな記録
  • OOコード養成ギブス - rants

    Binstock on Software: Perfecting OO's Small Classes and Short Methods The Pragmatic Programmersシリーズの新しい、The ThoughtWorks Anthologyの中に 興味をそそるエッセイがある。Jeff Bayの"Object Calisthenics"だ。 これは良いオブジェクト指向の性質を実証する小さなルーチンを書く方法をマスターするための 詳細にわたるエクササイズだ。オブジェクト指向なルーチンを書く能力を向上させたい開発者がいるなら このエッセイに目を通すことを勧める。ここにBayのアプローチを要約してみよう。 彼は次にあげられる制約のもとに1000行のプログラムを書くことを勧めている。 これらの制約は意図的に過剰な制限となっているが、これは開発者を手続き的なやり方から脱却させるた

    OOコード養成ギブス - rants
    yamaz
    yamaz 2008/11/29
    [あとで読む」
  • 5分で絶対に分かるバッファオーバーフロー ― @IT

    バッファオーバーフロー攻撃の仕組みを知ろう 皆さんがよく利用しているアプリケーションにセキュリティホールが見つかり、「悪意のあるコードが実行される可能性がある」というような内容のニュースをよく耳にします。 しかし、自分でインストールしたわけでもなければ、実行させたつもりもない「悪意のあるコード」がなぜ実行できるのでしょうか? 今回は、バッファオーバーフローを利用して、ほかのアプリケーション上で悪意のあるコードが実行される仕組みについて説明していきます。

    5分で絶対に分かるバッファオーバーフロー ― @IT
  • 1