2014-10-05 192 views
-2

是否可以获取数据类型的字节大小?我发现这一点:java.lang.Float.SIZE,但它返回32.我有这样的代码:获取数据类型字节大小

ByteBuffer.allocateDirect(vertices.length * 4) 

我想重写它像这样:

ByteBuffer.allocateDirect(vertices.length * FLOAT_BYTE_SIZE_CONSTANT) 

为什么是java.lang中.Float.SIZE返回32?因为它已签署?谢谢!

回答

1

我发现这一点:java.lang.Float.SIZE,但它返回32

是的,那是真实的,阅读JavaDoc

静态INT SIZE
数用于表示浮点值的位。

什么您正在寻找是Float.BYTES

静态INT BYTES
用于表示浮点值的字节数。

如果您尚未使用Java8(我推荐使用Java8),那么您只需将SIZE与8分开即可获得想要的结果。

+0

这是Java 8中的新功能。将SIZE除以8应该不会对以前的发行版造成太大麻烦。 – Mat 2014-10-05 11:40:27

+0

@Mat谢谢,不知道它在Java8之前不可用。添加到我的答案 – msrd0 2014-10-05 11:42:17