Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 10.10.2019, 09:52   #1
cyberdev
Форумчанин
 
Аватар для cyberdev
 
Регистрация: 10.10.2013
Сообщений: 150
Репутация: 65
По умолчанию double to hex и обратно

Какое бы ни было число в памяти компьютера всё равно оно представлено в виде 0 и 1, как всем известно. Мне нужно преобразовать double в hex, чтобы хранить его в целочисленной константе enum (а enum как известно это тот же int). Мой план действий состоит в следующем:


Код:
enum FloatEnum {
  e1=[значение в hex] // например, 1.5
};

double hexToDouble(int hexVal){
  // обратное преобразование hexVal в значение double
  return doubleRet;
}


Чтобы записать double в целочисленный enum я набросал следующую программу:

Код:
#include "pch.h"
#include <iostream>
using namespace std;

void proc() {
  double start;
  double end;
  double step;
  cout << "Input start" << "\n";
  cin >> start;
  cout << "Input end" << "\n";
  cin >> end;
  cout << "Input step" << "\n";
  cin >> step;
  int n = int((end - start) / step);
  cout << "Count: " << n + 1 << "\n";
  int i = 0;
  double ret;
  while (i < n)
  {
    ret = start + step * i;
    printf("val%i: %0*.*f\n", i + 1, 5, 2, ret);
    i++;
  }
  printf("val%i: %0*.*f\n", n + 1, 5, 2, end);
}

int main()
{
  setlocale(LC_ALL, "en");
  int inp;
  while (true)
  {
    std::cout << "Press 1 to continue or press any key to exit. \n";
    std::cin >> inp;
    if (inp == 1)
      proc();
    else
      break;
  }
  system("exit");
}
Как можно увидеть из кода программы она выдает вещественные числа в заданном диапазоне с заданным шагом. Получившийся результат легко скопировать и вставить в свой код. Как сделать так, чтобы программа выводила в консоль числа double в hex формате, чтобы записать их в enum а затем, конвертировать обратно с помощью функции hexToDouble?
__________________
Сайт о программировании и трехмерной графике - cybersite.ucoz.net

Последний раз редактировалось cyberdev; 10.10.2019 в 09:59.
cyberdev вне форума   Ответить с цитированием
Старый 10.10.2019, 11:33   #2
waleri
Профессионал
 
Регистрация: 13.07.2012
Адрес: Нижний Новгород
Сообщений: 5,926
Репутация: 1937
По умолчанию

Смысл городить таблицу там где можно сделать простое умножение?
waleri вне форума   Ответить с цитированием
Старый 11.10.2019, 23:41   #3
cyberdev
Форумчанин
 
Аватар для cyberdev
 
Регистрация: 10.10.2013
Сообщений: 150
Репутация: 65
По умолчанию

Порядок. Уже разобрался
__________________
Сайт о программировании и трехмерной графике - cybersite.ucoz.net
cyberdev вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отличие double и long double в Вижиал cover Общие вопросы C/C++ 1 14.10.2012 13:53
E2015 Ambiguity between 'std::log(double)' and 'std::log(long double)' Namolem Помощь студентам 3 02.04.2011 20:22
функция pow(double x, double y) Не могу понять в чем ошибка Vlashel Помощь студентам 3 07.10.2010 16:28
long double vs. double VoidMan Общие вопросы C/C++ 1 21.09.2009 18:45
как перевести из integer в real(и обратно), и из real в string(и обратно) Ga-sergey Общие вопросы Delphi 2 08.06.2007 21:13


09:49.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.