从java中的多字节变量中获取单个字节
Get single bytes from multi-byte variable in java
如何在java中将变量拆分为单个字节?例如,我在c++中有以下代码片段:
unsigned long someVar;
byte *p = (byte*)(void*) someVar; // byte being typedef unsigned char (from 0 to 255)
byte *bytes = new byte[sizeof(someVar)];
for(byte i = 0;i<sizeof(someVar);i++)
{
bytes[i] = *p++;
}
.... //do something with bytes
我想在java下完成同样的工作,但我似乎找不到一个明显的解决方案。
使用ByteBuffer类有两种方法。一种是动态创建新的字节数组。
long value = 123;
byte[] bytes = ByteBuffer.allocate(8).putLong(value).array();
另一种是写入一个已存在的数组。
long value = 123;
byte[] bytes = new byte[8];
ByteBuffer.wrap(bytes).putLong(value);
// bytes now contains the byte representation of 123.
如果您使用Guava,则有一个方便的long . tobytearray。它只是上面John的ByteBuffer答案的一个包装,但是如果您已经使用了Guava,那么它读起来会稍微"好一点"。
相关文章:
- 与多个 for 循环与单个 for 循环 wrt 相关的性能从多映射获取数据
- 这个针对单个写入器 + 读取器的发布/检查更新类是否可以使用 memory_order_relaxed 或获取/发布以提
- 从单个标志C++获取多个参数
- 如何从用户那里获取单个字符,直到他输入"."或输入
- 获取单个文件的 Clang AST
- 如何从unordered_set获取单个项目
- 如何在单个 (.a) 存档中仅获取所需的对象文件
- 如何使用C Win32 API设置和获取多个值(数组值)到Active Directory中的单个属性
- 如何从文件中写入的UTF-8编码的URDU字符串中获取单个字符
- 如何获取从GetPrivateProfileSection()返回的单个字符串
- 如何使用 clang 获取单个 cpp 文件的 AST
- PROGMEM从字符串数组中获取单个字符
- 如何使用OpenCV和Eclipse从视频剪辑中获取单个帧
- CRITICAL_SECTION用于设置和获取单个布尔值
- 获取单个平面中两个矢量之间角度的有效方法
- 从字符串中获取单个字符串字符
- 获取单个非循环链表中指针后面节点的值
- 我如何从boost库(例如shared_pointer)中获取单个元素
- 从java中的多字节变量中获取单个字节
- 从boost::python::object列表中获取单个元素,用于python例程