programmingとCに関するdotsargのブックマーク (2)

  • strlen() の深淵 - Qiita

    あらまし strlen() という関数がある。御存知の通り、文字列の長さを算出する標準 C ライブラリの関数だ。 やってることは単純で、例えば以下のように実装できる。 size_t strlen_simple(const char* str) { const char* p = str; while (*p) ++p; return size_t(p - str); } '\0' が見つかるまでポインタを進め、初期位置との差分を返すだけだ。これで機能的には std::strlen() と同等である。 では、速度的にはどうだろう?適当にベンチマークを書いて MSVC 2022 でコンパイル&実行するとこうなった。

    strlen() の深淵 - Qiita
    dotsarg
    dotsarg 2024/04/02
    8 byte のデータ型の中に 0 の byte が含まれるかどうかを Bit 演算で求める方法が記載されている。
  • その16 なるほど面白い浮動小数点乱数

    ホーム < ゲームつくろー! < Programming TIPs編 その16 なるほど面白い浮動小数点乱数 ゲームでは色々な所で乱数が必要になります。乱数発生器にも様々なものがありますが、整数乱数であればメルセンヌ・ツイスター法が有名だったりします。ところで、浮動小数点の乱数もまた良く使うのですが、なるほど面白い実装方法を教えてもらいましたので備忘録として残します。ちなみに、元ネタはこの辺りにあります(http://iquilezles.org/www/articles/sfrand/sfrand.htm)。 ① 結果はこんなです 0.0f~1.0fの間の浮動小数点乱数を範囲での乱数を作る方法としてべたなのは以下のようなものです:

  • 1