如何将Long转换为byte []并返回java

如何将Long转换为byte []并返回java

如何将长转换为字节[]并返回Java?我正在尝试将long转换为byte [],以便我能够通过tcp连接发送byte []。另一方面,我想取该字节[]并将其转换回double。任何提示将不胜感激。



喵喵时光机
浏览 4695回答 3
3回答

慕村9548890

您可以使用字节转换方法从谷歌番石榴。例:byte[] bytes = Longs.toByteArray(12345L);

白衣非少年

我测试了ByteBuffer方法对普通的按位操作,但后者明显更快。public&nbsp;static&nbsp;byte[]&nbsp;longToBytes(long&nbsp;l)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;byte[]&nbsp;result&nbsp;=&nbsp;new&nbsp;byte[8]; &nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;7;&nbsp;i&nbsp;>=&nbsp;0;&nbsp;i--)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result[i]&nbsp;=&nbsp;(byte)(l&nbsp;&&nbsp;0xFF); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;l&nbsp;>>=&nbsp;8; &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;result;}public&nbsp;static&nbsp;long&nbsp;bytesToLong(byte[]&nbsp;b)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;long&nbsp;result&nbsp;=&nbsp;0; &nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;8;&nbsp;i++)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;<<=&nbsp;8; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;|=&nbsp;(b[i]&nbsp;&&nbsp;0xFF); &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;result;}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java