Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
WeDZminxxx
2 / 2 / 1
Регистрация: 18.04.2014
Сообщений: 26
#1

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

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

Задача состоит в том что бы вывести float в шестнадцатеричном формате в поток. Модификатор hex не помогает (нормально работает только с целыми положительными), такую штуку как form вижак не видит, что-то вроде взять адрес от туда прочитать void привести к int и вывести тоже не помагает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2014, 11:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывести float в шестнадцатеричном формате в поток (C++):

Вывод float в формате часов - C++
Блин, тупой я, никак не могу вывести дробное число вот в таком виде: float n = 11.53; printf("%2.f:%.2f", n, n) ...

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

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

опять ошибка.на этот раз cannot convert `float (*)(float)' to `float' in argument passing - C++
#include<stdio.h> #include<stdlib.h> #include<math.h> float f1(float x)/*vira*enie 1*/ {return (x*cos(x))/(1+ pow(x,2));} ...

Чем отличаются float преобразования (float)var от float(var) - C++
Здравствуйте! Подскажите, чем отличается (float)var от float(var)

как вывести float без экспоненты? - C++
void initialize() { for(int i=0; i<TICK; i++) TickspeedRequired=BaseDuration/((i+13)-0.5); //TickspeedRequired - float //...

16
nmcf
5762 / 5073 / 1734
Регистрация: 14.04.2014
Сообщений: 20,764
18.04.2014, 11:27 #2
Текст с void покажи.
0
WeDZminxxx
2 / 2 / 1
Регистрация: 18.04.2014
Сообщений: 26
18.04.2014, 11:57  [ТС] #3
hex << *(unsigned int*)(void *) &res
0
Ilot
Модератор
Эксперт С++
1825 / 1183 / 232
Регистрация: 16.05.2013
Сообщений: 3,119
Записей в блоге: 5
Завершенные тесты: 1
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
WeDZminxxx
2 / 2 / 1
Регистрация: 18.04.2014
Сообщений: 26
18.04.2014, 12:38  [ТС] #5
вместо -0.00128395 0xbaa84a37
выдал 8.0999215E30 0x72cc7884
Мой пример дает такой же ответ
0
Ilot
Модератор
Эксперт С++
1825 / 1183 / 232
Регистрация: 16.05.2013
Сообщений: 3,119
Записей в блоге: 5
Завершенные тесты: 1
18.04.2014, 12:42 #6
Цитата Сообщение от WeDZminxxx Посмотреть сообщение
вместо -0.00128395 0xbaa84a37
выдал 8.0999215E30 0x72cc7884
Пример кода.
0
nmcf
5762 / 5073 / 1734
Регистрация: 14.04.2014
Сообщений: 20,764
18.04.2014, 12:43 #7
Ты пытаешься получить запись вещественного числа в шестнадцатеричной системе счисления или то как оно буквально в памяти хранится?
0
WeDZminxxx
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
Ilot
Модератор
Эксперт С++
1825 / 1183 / 232
Регистрация: 16.05.2013
Сообщений: 3,119
Записей в блоге: 5
Завершенные тесты: 1
18.04.2014, 15:52 #9
Ищите проблему на своей стороне у меня вывод:
4 4 -0.00128395 0xbaa84a37
0
WeDZminxxx
2 / 2 / 1
Регистрация: 18.04.2014
Сообщений: 26
18.04.2014, 15:59  [ТС] #10
Цитата Сообщение от nmcf Посмотреть сообщение
Ты пытаешься получить запись вещественного числа в шестнадцатеричной системе счисления или то как оно буквально в памяти хранится?
то как в памяти хранится
0
nmcf
5762 / 5073 / 1734
Регистрация: 14.04.2014
Сообщений: 20,764
18.04.2014, 16:17 #11
Вы какое число анализируете? res этот чему равен?
0
WeDZminxxx
2 / 2 / 1
Регистрация: 18.04.2014
Сообщений: 26
18.04.2014, 16:19  [ТС] #12
к примеру -0.00128395, а так любое число от -1 до 1
0
nmcf
5762 / 5073 / 1734
Регистрация: 14.04.2014
Сообщений: 20,764
18.04.2014, 16:23 #13
Для него BAA84A37
0
WeDZminxxx
2 / 2 / 1
Регистрация: 18.04.2014
Сообщений: 26
18.04.2014, 16:31  [ТС] #14
У меня таких чисел около полумилиона
0
nmcf
5762 / 5073 / 1734
Регистрация: 14.04.2014
Сообщений: 20,764
18.04.2014, 16:36 #15
У тебя не совпадает? -0.00128395 / BAA84A37
Какая платформа?
0
18.04.2014, 16:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.04.2014, 16:36
Привет! Вот еще темы с ответами:

в шестнадцатеричном виде - C++
Написать программу, которая вводит с клавиатуры два натуральных числа и выполняет логическое умножение и сложение этих чисел. На экран...

invalid types `float[float]' for array subscript - C++
void SEARCH(float vol, float price, int i) { if (i&gt;N) { if(price&gt;maxprice) { ...

неверное приведение void* к *float а далее к float - C++
Почему когда привожу void* к int* потом к int то все работает, данные не бьются и работают нормально, когда делаю те же операции но с...

cannot convert `float' to `float*. Почему так происходит? - C++
всем привет, помогите исправить ошибки... а то голова мало варит уже, а завтра надо сдать уже #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt;...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru