Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/21: Рейтинг темы: голосов - 21, средняя оценка - 4.86
2 / 2 / 1
Регистрация: 18.04.2014
Сообщений: 26
1

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

18.04.2014, 11:19. Показов 4129. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задача состоит в том что бы вывести float в шестнадцатеричном формате в поток. Модификатор hex не помогает (нормально работает только с целыми положительными), такую штуку как form вижак не видит, что-то вроде взять адрес от туда прочитать void привести к int и вывести тоже не помагает.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.04.2014, 11:19
Ответы с готовыми решениями:

Вывод float в формате часов
Блин, тупой я, никак не могу вывести дробное число вот в таком виде: float n = 11.53; ...

Вывести введённое неотрицательное число в двоичном, восмиричном и шестнадцатеричном представлении
Добрый день. Ребята помогите пожалуйста сделать: ввести неотрицательное число и вывести его в...

Вывести ASCII–код символа в десятичном, восьмеричном и шестнадцатеричном виде
Здравствуйте. Помогите пожалуйста с лабораторной... В языке С++ полный ноль, ничего не понимаю....

опять ошибка.на этот раз cannot convert `float (*)(float)' to `float' in argument passing
#include<stdio.h> #include<stdlib.h> #include<math.h> float f1(float x)/*vira*enie 1*/ ...

16
7791 / 6558 / 2984
Регистрация: 14.04.2014
Сообщений: 28,667
18.04.2014, 11:27 2
Текст с void покажи.
0
2 / 2 / 1
Регистрация: 18.04.2014
Сообщений: 26
18.04.2014, 11:57  [ТС] 3
hex << *(unsigned int*)(void *) &res
0
Эксперт по математике/физикеЭксперт С++
2048 / 1366 / 395
Регистрация: 16.05.2013
Сообщений: 3,505
Записей в блоге: 6
18.04.2014, 12:12 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 на некоторых машинах совпадают. О чем дают знать первые две строки.
0
2 / 2 / 1
Регистрация: 18.04.2014
Сообщений: 26
18.04.2014, 12:38  [ТС] 5
вместо -0.00128395 0xbaa84a37
выдал 8.0999215E30 0x72cc7884
Мой пример дает такой же ответ
0
Эксперт по математике/физикеЭксперт С++
2048 / 1366 / 395
Регистрация: 16.05.2013
Сообщений: 3,505
Записей в блоге: 6
18.04.2014, 12:42 6
Цитата Сообщение от WeDZminxxx Посмотреть сообщение
вместо -0.00128395 0xbaa84a37
выдал 8.0999215E30 0x72cc7884
Пример кода.
0
7791 / 6558 / 2984
Регистрация: 14.04.2014
Сообщений: 28,667
18.04.2014, 12:43 7
Ты пытаешься получить запись вещественного числа в шестнадцатеричной системе счисления или то как оно буквально в памяти хранится?
0
2 / 2 / 1
Регистрация: 18.04.2014
Сообщений: 26
18.04.2014, 12:50  [ТС] 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;
0
Эксперт по математике/физикеЭксперт С++
2048 / 1366 / 395
Регистрация: 16.05.2013
Сообщений: 3,505
Записей в блоге: 6
18.04.2014, 15:52 9
Ищите проблему на своей стороне у меня вывод:
4 4 -0.00128395 0xbaa84a37
0
2 / 2 / 1
Регистрация: 18.04.2014
Сообщений: 26
18.04.2014, 15:59  [ТС] 10
Цитата Сообщение от nmcf Посмотреть сообщение
Ты пытаешься получить запись вещественного числа в шестнадцатеричной системе счисления или то как оно буквально в памяти хранится?
то как в памяти хранится
0
7791 / 6558 / 2984
Регистрация: 14.04.2014
Сообщений: 28,667
18.04.2014, 16:17 11
Вы какое число анализируете? res этот чему равен?
0
2 / 2 / 1
Регистрация: 18.04.2014
Сообщений: 26
18.04.2014, 16:19  [ТС] 12
к примеру -0.00128395, а так любое число от -1 до 1
0
7791 / 6558 / 2984
Регистрация: 14.04.2014
Сообщений: 28,667
18.04.2014, 16:23 13
Для него BAA84A37
0
2 / 2 / 1
Регистрация: 18.04.2014
Сообщений: 26
18.04.2014, 16:31  [ТС] 14
У меня таких чисел около полумилиона
0
7791 / 6558 / 2984
Регистрация: 14.04.2014
Сообщений: 28,667
18.04.2014, 16:36 15
У тебя не совпадает? -0.00128395 / BAA84A37
Какая платформа?
0
2 / 2 / 1
Регистрация: 18.04.2014
Сообщений: 26
18.04.2014, 16:41  [ТС] 16
x86, винда 7, 64 битная
0
2 / 2 / 1
Регистрация: 18.04.2014
Сообщений: 26
02.06.2014, 16:03  [ТС] 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 - то что нужно было вывести
0
02.06.2014, 16:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.06.2014, 16:03
Помогаю со студенческими работами здесь

Вывод в шестнадцатеричном формате
Есть функция, которая выводит полученное с виртуального comporta значения, текст. Нужно, что-бы...

Как задать цвет в шестнадцатеричном формате
dataGridView1.RowsDefaultCellStyle.ForeColor = Color.DarkGray; А как его задать в типе &quot;FFFFFF&quot;?

Вывод чисел с плавающей точкой в шестнадцатеричном формате
Вот фрагмент учебника Шилдта: Объясните пожалуйста, как тут получилось число это? И как его...

Программа, которая принимает на вход произвольные двоичные данные и выводит их шестнадцатеричном формате
Помогите, пожалуйста, со следующей задачей: Нужна программа, которая принимает на вход...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru