タグ

C#に関するhush_puppyのブックマーク (2)

  • 一番右端の立っているビット位置を求める「ものすごい」コード - 当面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な記録
    hush_puppy
    hush_puppy 2009/07/05
    まさにマジックナンバー(褒め言葉)
  • 僕がJavaを選ばなかった理由 - カタチづくり

    先日、大学時代の後輩と久しぶりに会った。彼はSeasarのコミッタにもなっているとても優秀なJavaプログラマだ。 その彼が、ビールを片手にこう尋ねた。 「どうしてC#にしたんですか?Javaを選ばなかった理由って何かあるんですか?」 僕は答えた。 「Javaにはstructがないから、かな。」 彼はずいぶん驚いた様子だった。 「えーっ?struct?・・・そんなに必要ですか、struct?」 彼は、いわゆるSIに近いところにいて、ウェブアプリなどの開発などにも携わっていて、という立場。一方僕は3次元CAD関係だから、彼とは全く違う分野でやっている。二人ともプログラマでありながら、お互いに知らない分野をやっているので、こういう情報交換はとても面白い。 「ほら、3次元の幾何演算をしようと思ったら、座標値(x,y,z)を格納したり演算したりしたいからさ、ベクトルクラスとか作るでしょ?doubl

    僕がJavaを選ばなかった理由 - カタチづくり
  • 1