Форум программистов, компьютерный форум CyberForum.ru

Чтение файла с данными типа real. Тип real в билдере или как его "обойти"? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Быстрое возведение в степень по mod (остаток от деления) http://www.cyberforum.ru/cpp-beginners/thread1562236.html
Доброго времени суток, форумчане! Не могли бы пояснить кусочек кода long long res = 1; while (pow) { if (pow & 1) res = (res*value) % mod; pow >>= 1; value = (value*value) % mod;
C++ Из UTF-8 коды символов CP866 Подскажите плиз. Есть строка в UTF-8, из нее необходимо получить char состоящий из кодов этих символов в CP866 Мысли такие, с помощью setlocale и wcstombs преобразовать строку в многобайтовый массив. Потом поэлементно получать код символа из записывать в буфер. Может есть варианты лучше? http://www.cyberforum.ru/cpp-beginners/thread1562231.html
C++ Убрать костыль typedef
#include <iostream> using std::cout; #include <cstring> using std::strlen; template <typename T> T maxn(const T * ,int n); typedef char* R;//почему то без этого невыходит
Linked List Tasks C++
правильно ли я сделал задания? спасибо!
C++ Работа с файлами: изменение регистра символа на противоположный http://www.cyberforum.ru/cpp-beginners/thread1562216.html
Всем привет нужно составить вот такую программу Функция обработки символа : Изменение регистра на противоположный (рус) ВОт то что я уже написал : #include <iostream> #include <fstream> #include <ctype.h>
C++ Вывод данных об окружности по одному значению Элементы окружности пронумерованы следующим образом: 1 - Радиус, 2 - диаметр, 3 - длина, 4 - площадь круга. Дан номер одного из этих элементов и его значение. Вывести значения остальных элементов данной окружности( в таком же порядке). подробнее

Показать сообщение отдельно
nmcf
4736 / 4074 / 1359
Регистрация: 14.04.2014
Сообщений: 15,993
26.10.2015, 13:12     Чтение файла с данными типа real. Тип real в билдере или как его "обойти"?
Вот функция. Пользуйся.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <cmath>
 
double convert_real_to_double(char real48[])
{
    double exponentbase = 129;
    double exponent = real48[0] - exponentbase; // The exponent is offset so deduct the base.
     
    // Now Calculate the mantissa
    double mantissa = 0.0;
    double value = 1.0;
    // For Each Byte.
    for (int i = 5; i >= 1; i--)
    {
        int startbit = 7;
        if (i == 5)
        { startbit = 6; } //skip the sign bit.
     
        //For Each Bit
        for (int j = startbit; j >= 0; j--)
        {
            value = value / 2;// Each bit is worth half the next bit but we're going backwards.
            if (((real48[i] >> j) & 1) == 1) //if this bit is set.
            {
                mantissa += value; // add the value.
            }
     
        }
    }
     
    if (mantissa == 1.0 && real48[0] == 0) // Test for null value
        return 0.0;
     
    if ((real48[5] & 0x80) == 1) // Sign bit check
        mantissa = -mantissa;
     
    return (1 + mantissa) * pow(2.0, exponent);
}
 
Текущее время: 10:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru