| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Преобразовать byte[4] во float и наоборот |
| Автор: Metal_Heart 24.4.2006, 13:20 | ||
| Уж простите за примитивный вопрос, есть задача: преобразовать byte[4] во float и наоборот (Аналог union в С++) Добавлено @ 13:31 и ещё вопросик, что дает эта функция:
меня смущает это: int bits |
| Автор: ALKS 24.4.2006, 13:50 | ||
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Float.html#intBitsToFloat(int)
Неужели так трудно почитать доку прежде чем вопросы задавать? |
| Автор: Metal_Heart 24.4.2006, 13:53 |
| именно оттудова я это и почерпнул, но не понял. Не переведешь? |
| Автор: ALKS 24.4.2006, 14:06 | ||
нет. словари и форум переводчиков тут: http://www.multitran.ru/ |
| Автор: garm 24.4.2006, 14:11 | ||
| Если я правильно понял документацию, Float.intBitsToFloat() возвращает float, двоичное представление которого совпадает с двоичным представлением аргумента. Соотвественно для преобразования byte[4] во float можно сначала преобразовать его в int, потом позвать эту функцию. Что же касается преобразования byte[4] в int, думаю можно сделать так:
где bytes - это byte[4]. |
| Автор: garm 24.4.2006, 14:37 |
Действительно... Легких путей мы не ищем! в смысле у нас int - 4 байта и float - 4 байта, просто интерпретируются они по разному. То есть мы берём 4 байта из инта и интерпретируем их как float. |
| Автор: Metal_Heart 24.4.2006, 14:58 | ||||
| Обратное преобразование получается с использованием Float.floatToIntBits(float) (о которой только что узнал например так:
но лучше, по моему, другой вариант:
Добавлено @ 15:00 П.С. эх, исправили бы заголовок темы, а то я там такого ... |
| Автор: LSD 24.4.2006, 21:54 |
Это бинарное предствление float как описано в IEEE 754 floating-point "single format" bit layout. Вообщем вещь не особо нужная в обычной жизни. |
| Автор: Metal_Heart 25.4.2006, 08:37 |
| LSD, спасибо за исправления. |