JavaとPythonでバイトを整数に変換する

ThanosFisherman

私はPythonで次のコードを持っています:

    myBytes = m.digest()
    for one in myBytes:
        print(one, end=' ')
    print(end='\n')
    intlist = int.from_bytes(myBytes, 'little')
    print("intlist", intlist)

上記のコードは次の結果を出力します

72230166 56 69 98 5189 49 43129 54237 2147230

intlist 306485766027497339553611008967975560776

今、私はJavaでまったく同じ結果を達成したいと思います。これはこれまでの私のコードです:

byte[] myBytes = md.digest();
System.out.println(Arrays.toString(myBytes));
BigInteger intlist = new BigInteger(myBytes);
System.out.println("intlist=" + intlist);

これから得られる結果は次のとおりです。

[72、-26、-90、56、69、98、5、-67、49、43、-127、54、-19、2、-109、-26]

intlist = 96902015312221227689534558263304164326

Javaでの結果は、私がやりたいことに対して間違っています。Pythonコードとまったく同じ値を取得したい。

何か案は?

user2357112はモニカをサポートしています

Pythonでリトルエンディアンのバイト順序を指定しました。

intlist = int.from_bytes(myBytes, 'little')

ただし、JavaBigInteger(byte[] val)コンストラクターはビッグエンディアンの順序で入力を受け取ります。また、int.from_bytesデフォルトでは、入力が符号なし整数を表すと想定し、入力をBigInteger(byte[] val)2の補数の符号付き整数として解釈します。

Pythonの結果をJavaで複製する場合は、配列の順序を逆にし、符号/大きさBigInteger(int signum, byte[] magnitude)コンストラクターを使用して、配列を正の数を表すものとして扱います。

byte[] bytes = {72, -26, -90, 56, 69, 98, 5, -67, 49, 43, -127, 54, -19, 2, -109, -26};
for (int i = 0; i < bytes.length / 2; i++) {
    byte temp = bytes[i];
    bytes[i] = bytes[bytes.length - i - 1];
    bytes[bytes.length - i - 1] = temp;
}
System.out.println(new BigInteger(1, bytes));

出力:

306485766027497339553611008967975560776

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

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

編集
0

コメントを追加

0

関連記事

&と|を使用してJavaでバイトを整数に変換する

Pythonで整数をバイトに変換する

Pythonで整数を2バイトに変換する

整数をバイトに変換する

Pythonで整数を指定すると、バイト2〜7が返され、Javaコードが変換されます。

Pythonで数字の整数を1バイト文字に変換することは可能ですか?

Pythonで整数を64ビットバイト表現に変換する方法

Javaで整数値を「n」桁のASCIIバイト配列に変換する方法

Prologでバイトのリストを整数に変換する

Pythonで整数をバイナリに変換する

Pythonで整数をバイナリに変換する

Goで整数をバイトに変換する方法

Pythonはバイトを符号付き整数に変換します(結果として負の整数が必要です)

整数のベクトルをバイトに変換する方法とバイトから変換する方法は?

Python 3バイトとして表される大きな数を整数に変換する方法は?

javaと同様にperlでbigintをバイト配列に変換する方法

Pythonで文字列の部分文字列をバイトに、次に整数に変換する

Python 2,3整数を「バイト」にきれいに変換する

Python 2,3整数を「バイト」にきれいに変換する

整数はどのように4バイトにマッピングされますか?Pythonで4バイトを整数に変換する方法

Javaでバイト配列を整数に、またはその逆に変換する

nodejsで文字列と整数をバイナリに変換する方法は?

Pythonで長さ= 32バイトのシーケンスで整数を2進数に変換する方法

Pythonでバイナリ表現を符号付き64ビット整数に変換する

Pythonでバイナリリスト(または配列)を整数に変換する最速の方法

Rustで整数をバイトリテラルに変換する方法は?

Pythonでビットをバイトに変換する方法は?

Javaバイト[]をPython文字列に変換する方法は?

LLVMバイトコードをJavaバイトコードに変換することは可能ですか?

TOP 一覧

  1. 1

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  2. 2

    Railsで宝石のレイアウトを使用するにはどうすればよいですか?

  3. 3

    Chromeウェブアプリのウェブビューの高さの問題

  4. 4

    Ansibleで複数行のシェルスクリプトを実行する方法

  5. 5

    アンドロイド9 - キーストア例外android.os.ServiceSpecificException

  6. 6

    Windows 10 Pro 1709を1803、1809、または1903に更新しますか?

  7. 7

    CSSのみを使用して三角形のアニメーションを作成する方法

  8. 8

    Google Playストア:アプリページにリーダーボードと実績のアイコン/バッジが表示されない

  9. 9

    GoDaddyでのCKEditorとKCfinderの画像プレビュー

  10. 10

    PyCharmリモートインタープリターはプロジェクトタブにサイトパッケージのコンテンツを表示しません

  11. 11

    Windows 7では、一部のプログラムは「ビジュアルテーマを無効にする」レジストリ設定を行いませんか?

  12. 12

    Get-ADGroupMember:このリクエストのサイズ制限を超えました

  13. 13

    Pyusb can't find a device while libusb can

  14. 14

    MySQLでJSON_LENGTHとJSON_EXTRACTを組み合わせる方法は?

  15. 15

    Postmanを使用してファイル付きの(ネストされた)jsonオブジェクトを送信する

  16. 16

    Swiftのブロックのパラメーターに関するドキュメントのマークアップ形式は何ですか?

  17. 17

    Reactでclsxを使用する方法

  18. 18

    追加後、ブートストラップマルチセレクトがテーブルで機能しない

  19. 19

    MongoDB Compass: How to select Distinct Values of a Field

  20. 20

    「埋め込みブラウザのOAuthログイン」を有効にしてコールバックURLを指定した後でも、Facebookのコールバックエラーが発生する

  21. 21

    複数行ヘッダーのJTableヘッダーテキストの折り返し(カスタムTableCellRenderer)

ホットタグ

アーカイブ