[解決済み] JavaでLongをbyte[]に変換する方法
2022-04-14 17:46:59
質問
を変換するにはどうすればよいですか?
long
を
byte[]
をJavaで戻す?
を変換しようとしています。
long
を
byte[]
を送信できるようにする。
byte[]
をTCPコネクション上で実行します。もう一方では、その
byte[]
に変換し、再び
double
.
解決方法は?
public byte[] longToBytes(long x) {
ByteBuffer buffer = ByteBuffer.allocate(Long.BYTES);
buffer.putLong(x);
return buffer.array();
}
public long bytesToLong(byte[] bytes) {
ByteBuffer buffer = ByteBuffer.allocate(Long.BYTES);
buffer.put(bytes);
buffer.flip();//need flip
return buffer.getLong();
}
または、ByteBufferを繰り返し作成しないようにクラスでラップしています。
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();//need flip
return buffer.getLong();
}
}
せっかくなので、Guavaのようなライブラリを使ったほうがいい場合がほとんどだということをお伝えしておきます。そして、もしあなたがライブラリに対して奇妙な反対意見を持っているのであれば、おそらく この答え まずはネイティブなJavaの解決策を。私の回答が本当に優れているのは、システムのエンディアンを自分で気にする必要がないことだと思います。
関連
-
プロローグでのコンテンツは禁止されています
-
スレッド "main" で例外発生 java.lang.ArrayIndexOutOfBoundsException: 0 at One1.main(One1.java:3)
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] Javaで文字列を分割する方法
-
[解決済み] Javaで数値を小数点以下n桁に丸める方法
-
[解決済み] Javaでバイトサイズを人間が読める形式に変換するにはどうしたらいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
myeclipseでコンパイルするとAntエラーが発生する javaの例外が発生しました。
-
Android Studio 3.1.2 で v4, v7 パッケージが見つからない シンボル 'AppCompatActivity' を解決できない
-
スキャナは、タイプに解決することはできません最もルーキー初心者の質問
-
コンストラクタの呼び出しは、コンストラクタのエラー理解の最初のステートメントである必要があります。
-
リソースの読み込みに失敗しました。サーバーはステータス500(内部サーバーエラー)で応答しました。
-
org.glassfish.jersey.servlet.ServletContainer
-
スレッド "main" で例外発生 java.net.BindException: アドレスは既に使用中です。NET_Bind
-
あるコードに出会いましたが、何に使うのか理解できません。 List<String> list = new ArrayList<String>() { { a
-
IDEA パッケージステートメントの欠落
-
Java(1)仕上げの基本概念+eclipseのインストール構成