hash_djb2 PHPの結果が間違っていますか?

創傷

C ++

unsigned int hash_djb2(char *str, unsigned int str_size)
{
    unsigned int hash = 5381;

    for(unsigned int c = 0; c < str_size; c++)
        hash = ((hash << 5) + hash) + str[c];

    return (hash & 0xFFFFFFFF);
}

int main()
{
    string term = "one piece";
    char* data = const_cast<char*>(term.c_str());
    printf("%u", hash_djb2(data, term.size()));//2850035213
}

PHP

<?php
    function hash_djb2($str)
    {
        $hash = 5381;
        $length = strlen($str);
        for($i = 0; $i < $length; $i++) {
            $hash = ( ($hash << 5) + $hash ) + $str[$i];
        }
        return ($hash & 0xFFFFFFFF);
    }

    echo hash_djb2("one piece");//-233010523
?>

PHPがC ++と同じ結果を返すようにするにはどうすればよいですか?

deviantfan

str[c]PHPでそれに加えては、解析しようとするため、問題となっている
数、すなわちなどの文字列の内容を。「123」=> 123および「O」、「n」などは単純に0になります。ASCII値を取得するために
使用ord(str[c])します。

さらに、intキャストなど&0xFFFFFFFFはおそらく良い考え
です。そうでない場合、PHPはより大きな値でdoubleに切り替えることができます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Haskell repa:2つの配列の内積結果が間違っています

分類Dev

Conv2dTensorflowの結果が間違っています-精度= 0.0000e + 00

分類Dev

2つの日付を比較するJavascriptの結果が間違っている

分類Dev

錆:モジュール関数から結果を返す:型引数の数が間違っている:予期される2、見つかった0

分類Dev

Symfony 2OneToMany関係-関連付けの結果が間違っている

分類Dev

間違った結果を示す2つの日付の違い

分類Dev

b [2]が間違っているのはなぜですか?

分類Dev

Angular2、何が間違っているのですか?

分類Dev

引数の数が間違っています(1対2)

分類Dev

Unity Polygon Collider2Dの形状が間違っています

分類Dev

印刷関数の結果python2は正しいが、python3は間違っている

分類Dev

2つの非同期メソッドのいずれかが結果を返すのを待っています

分類Dev

ジョダ時間のある2つの日付の差日数が間違っていますか?

分類Dev

NSDateFormatter dateFromStringの結果が間違っていますか?

分類Dev

Python math.arctan()の結果が間違っていますか?

分類Dev

2つの特定の日付の間の時間の違いについて、Excelとmssqlで異なる結果が得られます

分類Dev

2つの同じ10進数を比較すると、間違った結果が得られます

分類Dev

2つの大きな数を乗算すると、間違った結果が得られます

分類Dev

2つのDateTimeインスタンスを比較すると、間違った結果が得られます

分類Dev

JMeter HTTPリクエストは、間違ったURLの2番目の失敗した結果を示しています

分類Dev

postgresql2つのNOTLIKE句が間違った結果を返す

分類Dev

NSDate dateFromString 2か月間間違っていますか?

分類Dev

PHPのpassword_hash()は、いくつかの異常な動作を示していますか?たぶん私は間違っています?

分類Dev

PHPの `hex2bin`のNode.js / JS実装は、間違った結果を返します。同じ結果を得る方法は?

分類Dev

MySQLの2列の合計が間違った結果

分類Dev

ggplotの2次軸の凡例の色が間違っています

分類Dev

2つのnumpy配列をプロットしようとすると、何が間違っていますか?

分類Dev

MySQLの結合が間違っています結果

分類Dev

Rails 5の引数の数が間違っています(2、期待1)

Related 関連記事

  1. 1

    Haskell repa:2つの配列の内積結果が間違っています

  2. 2

    Conv2dTensorflowの結果が間違っています-精度= 0.0000e + 00

  3. 3

    2つの日付を比較するJavascriptの結果が間違っている

  4. 4

    錆:モジュール関数から結果を返す:型引数の数が間違っている:予期される2、見つかった0

  5. 5

    Symfony 2OneToMany関係-関連付けの結果が間違っている

  6. 6

    間違った結果を示す2つの日付の違い

  7. 7

    b [2]が間違っているのはなぜですか?

  8. 8

    Angular2、何が間違っているのですか?

  9. 9

    引数の数が間違っています(1対2)

  10. 10

    Unity Polygon Collider2Dの形状が間違っています

  11. 11

    印刷関数の結果python2は正しいが、python3は間違っている

  12. 12

    2つの非同期メソッドのいずれかが結果を返すのを待っています

  13. 13

    ジョダ時間のある2つの日付の差日数が間違っていますか?

  14. 14

    NSDateFormatter dateFromStringの結果が間違っていますか?

  15. 15

    Python math.arctan()の結果が間違っていますか?

  16. 16

    2つの特定の日付の間の時間の違いについて、Excelとmssqlで異なる結果が得られます

  17. 17

    2つの同じ10進数を比較すると、間違った結果が得られます

  18. 18

    2つの大きな数を乗算すると、間違った結果が得られます

  19. 19

    2つのDateTimeインスタンスを比較すると、間違った結果が得られます

  20. 20

    JMeter HTTPリクエストは、間違ったURLの2番目の失敗した結果を示しています

  21. 21

    postgresql2つのNOTLIKE句が間違った結果を返す

  22. 22

    NSDate dateFromString 2か月間間違っていますか?

  23. 23

    PHPのpassword_hash()は、いくつかの異常な動作を示していますか?たぶん私は間違っています?

  24. 24

    PHPの `hex2bin`のNode.js / JS実装は、間違った結果を返します。同じ結果を得る方法は?

  25. 25

    MySQLの2列の合計が間違った結果

  26. 26

    ggplotの2次軸の凡例の色が間違っています

  27. 27

    2つのnumpy配列をプロットしようとすると、何が間違っていますか?

  28. 28

    MySQLの結合が間違っています結果

  29. 29

    Rails 5の引数の数が間違っています(2、期待1)

ホットタグ

アーカイブ