Форум программистов, компьютерный форум CyberForum.ru

Вывести float в шестнадцатеричном формате в поток - C++

Восстановить пароль Регистрация
 
WeDZminxxx
2 / 2 / 1
Регистрация: 18.04.2014
Сообщений: 26
18.04.2014, 11:19     Вывести float в шестнадцатеричном формате в поток #1
Задача состоит в том что бы вывести float в шестнадцатеричном формате в поток. Модификатор hex не помогает (нормально работает только с целыми положительными), такую штуку как form вижак не видит, что-то вроде взять адрес от туда прочитать void привести к int и вывести тоже не помагает.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4281 / 3712 / 1247
Регистрация: 14.04.2014
Сообщений: 14,521
18.04.2014, 11:27     Вывести float в шестнадцатеричном формате в поток #2
Текст с void покажи.
WeDZminxxx
2 / 2 / 1
Регистрация: 18.04.2014
Сообщений: 26
18.04.2014, 11:57  [ТС]     Вывести float в шестнадцатеричном формате в поток #3
hex << *(unsigned int*)(void *) &res
Ilot
Модератор
Эксперт С++
1765 / 1140 / 221
Регистрация: 16.05.2013
Сообщений: 3,017
Записей в блоге: 5
Завершенные тесты: 1
18.04.2014, 12:12     Вывести float в шестнадцатеричном формате в поток #4
Если у вас уж совсем совести нет то можно так:
C++
1
2
3
4
5
6
7
8
9
#include<iostream>
int main()
{
    std::cout << sizeof(int) << std::endl;
    std::cout << sizeof(float) << std::endl;
    float f = 3.14;
    std::cout << std::hex << *(reinterpret_cast<int*>(&f)) << std::endl;
    return 0;
}
Благо размеры int и float на некоторых машинах совпадают. О чем дают знать первые две строки.
WeDZminxxx
2 / 2 / 1
Регистрация: 18.04.2014
Сообщений: 26
18.04.2014, 12:38  [ТС]     Вывести float в шестнадцатеричном формате в поток #5
вместо -0.00128395 0xbaa84a37
выдал 8.0999215E30 0x72cc7884
Мой пример дает такой же ответ
Ilot
Модератор
Эксперт С++
1765 / 1140 / 221
Регистрация: 16.05.2013
Сообщений: 3,017
Записей в блоге: 5
Завершенные тесты: 1
18.04.2014, 12:42     Вывести float в шестнадцатеричном формате в поток #6
Цитата Сообщение от WeDZminxxx Посмотреть сообщение
вместо -0.00128395 0xbaa84a37
выдал 8.0999215E30 0x72cc7884
Пример кода.
nmcf
4281 / 3712 / 1247
Регистрация: 14.04.2014
Сообщений: 14,521
18.04.2014, 12:43     Вывести float в шестнадцатеричном формате в поток #7
Ты пытаешься получить запись вещественного числа в шестнадцатеричной системе счисления или то как оно буквально в памяти хранится?
WeDZminxxx
2 / 2 / 1
Регистрация: 18.04.2014
Сообщений: 26
18.04.2014, 12:50  [ТС]     Вывести float в шестнадцатеричном формате в поток #8
out_RESP_15_resp << sizeof(int) << " " << sizeof(float) << " ";
out_RESP_15_resp << showbase << res << " " << std::hex << *(reinterpret_cast<int*>(&res)) << "\n" ;//

вывод
4 4 -0.00128395 0x72cc7884

мой код выглядел
out_RESP_15_resp << showbase << res << " " << hex << *(unsigned int*)(void *) &res << "\n";

не пишу std:: так как прописано using namespace std;
Ilot
Модератор
Эксперт С++
1765 / 1140 / 221
Регистрация: 16.05.2013
Сообщений: 3,017
Записей в блоге: 5
Завершенные тесты: 1
18.04.2014, 15:52     Вывести float в шестнадцатеричном формате в поток #9
Ищите проблему на своей стороне у меня вывод:
4 4 -0.00128395 0xbaa84a37
WeDZminxxx
2 / 2 / 1
Регистрация: 18.04.2014
Сообщений: 26
18.04.2014, 15:59  [ТС]     Вывести float в шестнадцатеричном формате в поток #10
Цитата Сообщение от nmcf Посмотреть сообщение
Ты пытаешься получить запись вещественного числа в шестнадцатеричной системе счисления или то как оно буквально в памяти хранится?
то как в памяти хранится
nmcf
4281 / 3712 / 1247
Регистрация: 14.04.2014
Сообщений: 14,521
18.04.2014, 16:17     Вывести float в шестнадцатеричном формате в поток #11
Вы какое число анализируете? res этот чему равен?
WeDZminxxx
2 / 2 / 1
Регистрация: 18.04.2014
Сообщений: 26
18.04.2014, 16:19  [ТС]     Вывести float в шестнадцатеричном формате в поток #12
к примеру -0.00128395, а так любое число от -1 до 1
nmcf
4281 / 3712 / 1247
Регистрация: 14.04.2014
Сообщений: 14,521
18.04.2014, 16:23     Вывести float в шестнадцатеричном формате в поток #13
Для него BAA84A37
WeDZminxxx
2 / 2 / 1
Регистрация: 18.04.2014
Сообщений: 26
18.04.2014, 16:31  [ТС]     Вывести float в шестнадцатеричном формате в поток #14
У меня таких чисел около полумилиона
nmcf
4281 / 3712 / 1247
Регистрация: 14.04.2014
Сообщений: 14,521
18.04.2014, 16:36     Вывести float в шестнадцатеричном формате в поток #15
У тебя не совпадает? -0.00128395 / BAA84A37
Какая платформа?
WeDZminxxx
2 / 2 / 1
Регистрация: 18.04.2014
Сообщений: 26
18.04.2014, 16:41  [ТС]     Вывести float в шестнадцатеричном формате в поток #16
x86, винда 7, 64 битная
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.06.2014, 16:03     Вывести float в шестнадцатеричном формате в поток
Еще ссылки по теме:

опять ошибка.на этот раз cannot convert `float (*)(float)' to `float' in argument passing C++
cannot convert `float' to `float*. Почему так происходит? C++
C++ Чем отличаются float преобразования (float)var от float(var)

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
WeDZminxxx
2 / 2 / 1
Регистрация: 18.04.2014
Сообщений: 26
02.06.2014, 16:03  [ТС]     Вывести float в шестнадцатеричном формате в поток #17
C++
1
2
3
4
5
6
7
8
static_assert( std::numeric_limits<float>::is_iec559, "native float must be an IEEE float" ) ;
union _convert{ 
        float fval; 
    unsigned int ival ; 
}convert;
   
convert.fval = res ;
cout << hex << convert.ival << "\n" ;

res - то что нужно было вывести
Yandex
Объявления
02.06.2014, 16:03     Вывести float в шестнадцатеричном формате в поток
Ответ Создать тему
Опции темы

Текущее время: 14:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru