Здравствуйте, фрагмент кода ниже имеет следующий вывод.Я думал, что вывод по элементам был бы [56, 25, 0,0,0,0,0,0] или, возможно, [5,6,2,5,0,0,0,0].Я проверил с помощью сетевых утилит базового преобразования, и ни одно из представлений элементов байтового массива не является восьмеричным, шестнадцатеричным и т. Д. Может кто-нибудь объяснить, каково внутреннее представление элемента байтового массива в Java?(моя конечная цель - сохранить двойные значения в байтовом массиве).
d = 56.25
байтовый массив 'output' = [64, 76, 32, 0, 0, 0, 0, 0]
обратно в десятичную = 56,25
double d = 56.25;
System.out.println("d= "+d);
byte[] output = new byte[8];
Long lng = Double.doubleToLongBits(d);
for (int i = 0; i < 8; i++) {
output[i] = (byte)((lng >> ((7 - i) * 8)) & 0xff);
}
System.out.print("\n\n");
System.out.println("byte array 'output'= "+Arrays.toString(output));
double val = ByteBuffer.wrap(output).order(ByteOrder.BIG_ENDIAN).getDouble();
System.out.print("\n\n");
System.out.println("back to decimal= "+val);