Я пытаюсь преобразовать float в массив байтов. Вот способ:
public static byte [] float2ByteArray (float value)
{
Float f = new Float(value);
return new byte [] { (byte) (f.byteValue() >>> 56),
(byte) (f.byteValue() >>> 48),
(byte) (f.byteValue() >>> 40),
(byte) (f.byteValue() >>> 32),
(byte) (f.byteValue() >>> 24),
(byte) (f.byteValue() >>> 16),
(byte) (f.byteValue() >>> 8),
(byte) f.byteValue() };
}
Исключением, которое я получаю, является: Exception in thread "main" java.lang.ClassCastException: java.lang.Double cannot be cast to java.lang.Float
Использование примитивного типа в long работает, но не примитивный тип для float:
public static byte [] long2ByteArray (long value)
{
return new byte [] { (byte) (value >>> 56),
(byte) (value >>> 48),
(byte) (value >>> 40),
(byte) (value >>> 32),
(byte) (value >>> 24),
(byte) (value >>> 16),
(byte) (value >>> 8),
(byte) value };
}