0 / 0 / 0
Регистрация: 21.09.2015
Сообщений: 29
1

Интерпретировать строку - двоичную запись float

20.11.2017, 18:47. Показов 634. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!

Есть задача, получив на входе строку вида "10111111001010000000000000000000" (число в формате одинарной точности), вывести закодированное число как переменную типа float (в данном случае -2.625).

Уже пробовал реализовать подобное повторением естественного алгоритма перевода числа из формата одинарной точности в его десятичную запись, но на выходе не всегда получал точные значения (код того проекта, к сожалению, на данный момент привести затрудняюсь).

Есть подозрение, что это можно реализовать без костылей при помощи работы с памятью, но я не нашел в сети ни реализации подобного, ни какого-либо объяснения. Как я понял, побитовые операции в С++ (никогда с ними не работал) работают только с целыми числами.

Можно ли реализовать данную задачу так, чтобы число переводилось правильно в любом случае?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.11.2017, 18:47
Ответы с готовыми решениями:

Дана строка, изображающая двоичную запись целого положительного числа. Вывести строку, изображающую десятичную запись эт
Не врубаюсь вообще. Прошу использовать только библиотекu <cstring> ну и стандартные тоже можно...

. Дана строка, изображающая десятичную запись целого положительного числа. Вывести строку, изображающую двоичную запись этого же числа
срочно помогите пожалуйста

Дана строка, изображающая двоичную запись целого числа. Вывести строку, изображающую десятичную запись этого же числа
Дана строка, изображающая двоичную запись целого числа. Вывести строку, изображающую десятичную...

Дана строка, изображающая десятичную запись целого положительного числа. Вывести строку изображающую двоичную запись этого же числа
Вот так вот

3
7784 / 6553 / 2982
Регистрация: 14.04.2014
Сообщений: 28,615
20.11.2017, 19:32 2
Каким образом получается -2.625? Это двоичное представление float или нет?
0
0 / 0 / 0
Регистрация: 21.09.2015
Сообщений: 29
20.11.2017, 20:47  [ТС] 3
Пардон, мой косяк. Да, это двоичное представление float. Имелось ввиду -0.65625.
0
7784 / 6553 / 2982
Регистрация: 14.04.2014
Сообщений: 28,615
20.11.2017, 21:05 4
C++
1
2
3
4
5
6
std::bitset<32> x;
uint32_t y;
 
cin >> x;
y = x.to_ulong();
cout << *reinterpret_cast<float *>(&y);
0
20.11.2017, 21:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.11.2017, 21:05
Помогаю со студенческими работами здесь

Вывести строку, изображающую двоичную запись числа
дана строка, изображающая десятичную запись целого положительного числа. вывести строку,...

Вывести строку, изображающую двоичную запись числа
Дана строка, изображающая десятичную запись целого положительного числа. Вывести строку,...

Вывести строку, изображающую двоичную запись числа
Дана строка, изображающая десятичную запись целого положительного числа. Вывести строку,...

Вывести строку, изображающую десятичную/двоичную запись числа
Дана строка, изображающая двоичную1|десятичную2 запись целого числа. Вывести строку, изображающую...


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

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

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