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

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

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


Ответ
 
Опции темы
Старый 10.10.2019, 08:52   #1
cyberdev
Форумчанин
 
Аватар для cyberdev
 
Регистрация: 10.10.2013
Сообщений: 150
По умолчанию 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 в 08:59.
cyberdev вне форума Ответить с цитированием
Старый 10.10.2019, 10:33   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,218
По умолчанию

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

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


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


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840