Javaでintとしてバイト値を処理する方法

ムラリ:

それが言うように、私は「Sなどの文字列のハッシュコードのための式[0] * 31 ^(N-1)+ S [1] * 31 ^(N-2)+ ...手動で文字列のハッシュコードの計算を行うにしようとしています+ S [N-1]」、以下のよう

    public static void main(String[] args) {

        String str1 = new String("A");

        double hc = 0;
        for (int i = 0; i < str1.length(); i++) {
            int iv = (byte) str1.charAt(i);
            hc = hc + Math.pow((iv * 31), (str1.length() - 1 - i));
        }

        System.out.println(hc);              // 1.0
        System.out.println(str1.hashCode()); // 65
    }

javaの変換バイトので、「HC」の値はルールに従ってint型の値に1.0です。しかし、私が探しています答えは、それはint型の変数にあるようバイト値をコピーする方法65です。

F0urth:

これまでのところ、私はそれによって何を意味するかの関数でuがミスを犯す見るものから:

Math.pow((iv * 31), (str1.length() - 1 - i)) 

ある等しい=>(65 * 31)^(1 [str.lenght] - 1 - 0 [I値])

1を与えるもの何か0 ^(65 * 31)などを提供していますが表現65 *(^ 0 31)を探しています[結論で]どんな機能は以下のようになります必要がありますので、

Math.pow((31), (str1.length() - 1 - i)) * iv 

私は65を与えるつもり推測何

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=236047&siteId=1