【发布时间】:2014-12-07 18:41:11
【问题描述】:
我正在尝试使用 ByteBuffer 处理无符号基元数。
我可以处理(放入ByteBuffer)无符号字节/短/整数。
比如处理 unsigned int 的代码:
m_buf.putInt(nOffset, (int) (0xFFFFFFFF & number.longValue()));
但是,当我想对无符号浮点数做同样的事情时:
m_buf.putFloat(nOffset, (float) (0xFFFFFFFF & number.doubleValue()));
我收到编译器错误:“运算符 & 未定义参数类型 int, double”
那么 - 如何使用ByteBuffer 处理获取和设置无符号浮点数?
谢谢
【问题讨论】:
-
对于无符号浮点数实际上并没有任何公认的定义。
-
你是对的,在检查 cpp 项目后 - 没有未签名的浮点数... :)
-
这个问题真的没有任何意义。 Java 根本没有无符号类型(除非你算上
char)——而且我不知道有任何语言有无符号浮点数。我试图想象一个无符号浮点数可能是什么——这个想法根本不存在。 -
@DavidWallace,我想符号位将用作尾数或指数的一部分。
-
是的,我们可以想象。这个问题仍然没有意义。 “我正在尝试处理未签名的原始数字”相当于“我正在尝试放牧独角兽”。我们可以想象那些独角兽的样子,但有什么意义呢?