Java でバイト配列を Long に変換するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-05 18:11:02
オリジナル
301 人が閲覧しました

How to Convert a Byte Array to a Long in Java?

Java でのバイト配列から Long への変換: 総合ガイド

long データ型とバイト配列の間の変換は、Java プログラミングの基本的なタスクです、特にネットワーク上でデータを交換する場合、またはデータをバイナリ形式で保存する場合に注意が必要です。この記事では、この変換を効果的に実行するためのさまざまな方法について概説します。

Long からバイト配列への変換

long 値をバイト配列に変換するには、次のコマンドを使用できます。 approach:

<code class="java">public byte[] longToBytes(long x) {
    ByteBuffer buffer = ByteBuffer.allocate(Long.BYTES);
    buffer.putLong(x);
    return buffer.array();
}</code>
ログイン後にコピー

このコードでは、long 値を表すために必要なバイト数と同じサイズの ByteBuffer オブジェクトが割り当てられます。 putLong メソッドを使用して Long 値をバッファに書き込み、最後に array メソッドで基礎となるバイト配列表現を取得します。

バイト配列から Long への変換

逆変換を実行するには、次のコードを使用できます。

<code class="java">public long bytesToLong(byte[] bytes) {
    ByteBuffer buffer = ByteBuffer.allocate(Long.BYTES);
    buffer.put(bytes);
    buffer.flip(); // Flip the buffer to make it ready for reading
    return buffer.getLong();
}</code>
ログイン後にコピー

ここでは、ByteBuffer オブジェクトが再度使用され、今回は指定されたバイト配列をラップします。 put メソッドを使用してバイトをバッファにコピーし、その後バッファを反転して読み取りの準備ができたことを示します。最後に、getLong メソッドはバッファから Long 値を取得します。

ByteBuffer の繰り返し作成を回避する

複数の変換が実行されるシナリオでは、ByteBuffer の作成を回避する方が効率的です。変換ごとに新しい ByteBuffer オブジェクト。これは、プロセスをクラスでラップすることで実現できます。

<code class="java">public class ByteUtils {
    private static ByteBuffer buffer = ByteBuffer.allocate(Long.BYTES);

    public static byte[] longToBytes(long x) {
        buffer.putLong(0, x);
        return buffer.array();
    }

    public static long bytesToLong(byte[] bytes) {
        buffer.put(bytes, 0, bytes.length);
        buffer.flip();
        return buffer.getLong();
    }
}</code>
ログイン後にコピー

この場合、単一の ByteBuffer オブジェクトがすべての変換で共有され、オブジェクト作成のオーバーヘッドが最小限に抑えられます。

結論

この記事で説明するメソッドは、Java で Long 値とバイト配列の間で変換する効率的かつ信頼性の高い方法を提供します。 directByteBuffer アプローチを選択するか ByteUtils ラッパーを利用するかにかかわらず、アプリケーションでこれらの変換を自信を持って処理できます。

以上がJava でバイト配列を Long に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!