powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Преобразование byte[8] к double
6 сообщений из 6, страница 1 из 1
Преобразование byte[8] к double
    #33458667
welaribo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так получается, что данные из файла я могу читать только в виде байт. Необходимо преобразовать прочитанные из файла 8 байт в double, то есть данные 8 байт содержат один double. Подскажите, как это можно сделать?
...
Рейтинг: 0 / 0
Преобразование byte[8] к double
    #33458768
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а в каком виде они представлены байтами? в long перевести -
элементарно. а для double надо знать длину мантисы (вроде так
называется... нам такие задачи на 1ом курсе давали)
-----------------------------------
The Bat + My Gate

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Преобразование byte[8] к double
    #33459024
welaribo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если я использую функцию DataInputStream.readDouble() то это число замечательно читается. Значит, представления данных байт следующее:
-бит знака
-11 бит exponent
-52 бита fraction
...
Рейтинг: 0 / 0
Преобразование byte[8] к double
    #33459097
Фотография А.Грасоff™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
взято из java.io.DataInputStream#readDouble() и java.io.DataInputStream#readLong()

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
 byte [] bdouble =  new   byte [ 8 ];

// read into bdouble ...

 long  longBits = (( long )bdouble[ 0 ] <<  56 ) +
            (( long )(bdouble[ 1 ] &  255 ) <<  48 ) +
            (( long )(bdouble[ 2 ] &  255 ) <<  40 ) +
            (( long )(bdouble[ 3 ] &  255 ) <<  32 ) +
            (( long )(bdouble[ 4 ] &  255 ) <<  24 ) +
            ((bdouble[ 5 ] &  255 ) <<  16 ) +
            ((bdouble[ 6 ] &  255 ) <<   8 ) +
            ((bdouble[ 7 ] &  255 ) <<   0 );

 double  d =  Double .longBitsToDouble(longBits);
...
Рейтинг: 0 / 0
Преобразование byte[8] к double
    #33459131
rikman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А еще вот так можно:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
 import  java.nio.*;

 class  b2d
{
	 public   static   void  main(String[] args)
	{
		 byte  b[] = { 64 , 74 ,- 12 , 122 ,- 31 , 71 ,- 82 , 20 };

		ByteBuffer bb = ByteBuffer.wrap(b);
		DoubleBuffer db = bb.asDoubleBuffer();
		 double  d = db.get( 0 );

		System.out.println(( new   Double (d)).toString());
	}
}
...
Рейтинг: 0 / 0
Преобразование byte[8] к double
    #33459145
Фотография А.Грасоff™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rikmanА еще вот так можно
скорее всего это будет тяжелее.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Преобразование byte[8] к double
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]