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

Точность числа с плавающей точкой - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ В чём ошибка? http://www.cyberforum.ru/cpp-beginners/thread716797.html
#include "stdafx.h" #include "allclass.h" #include <vector> #include <iostream> #include <fstream> using namespace std; int _tmain(int argc, _TCHAR* argv) {
C++ Курсовая по ООП Одна тема - одно задание. Потрудитесь! http://www.cyberforum.ru/cpp-beginners/thread716751.html
Сортировка строк по алфавиту C++
вот есть допустим такой код.. и мне нужно отсортировать каждый введенный title по алфавиту. Это можно сделать после того как закончишь ввод не обязательно прям во время ввода. язык с++ естественно и желательно ненадо использовать очень сложные алгоритмы я только пол года учу с++. В общем буду рад любой помощи. struct book { char title; char author; }; int main() { int cnt_book = 0;
C++ Вычислить сумму конечного отрезка ряда
Помогите, плиз, как написать программу с помощью функций??? (в С++) Дано натуральное число N. Вычислить сумму конечного отрезка ряда:
C++ указатели (посчитать кол-во вхождений подстроки в строку) http://www.cyberforum.ru/cpp-beginners/thread716725.html
Не могу дописать программу. Заранее извените, ещё не умею вставлять код программы... Выделить код и на панели, где вводите текст, ткнуть на соответствующий язык. вот она #include "delLast.h" #include <iostream> #include <string> using namespace std; int main () { char tmp ;
C++ Посчитать количество минимальных элементов целочисленного массива Посчитать количество минимальных элементов целочисленного массива А Помогите, спасибо заранее. подробнее

Показать сообщение отдельно
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
02.12.2012, 22:29     Точность числа с плавающей точкой
Рассмотрим твоё число y=776644278 какого оно порядка? По основанию 10 порядок очевидно 9, т.к. y=0,776644278*10^9
А по основанию 2? Посчитаем, что log2(776644278)=29.533 Значит порядок числа 29
Представим число в виде 776644278=M*2^29, где 2^29=536870912, где М - мантисса
Тогда находим y=1,4466126970946788787841796875*2^29


Теперь мы готовы записать это число в переменную типа float. Об этом типе известно, что он выделяет в памяти
под мантиссу 23 бит, а под порядок 8 бит
Тогда порядок запишется в виде десятичное 29=00011101 в двоичной. (5 бит влезли в предоставленные флоатом 8)

Мантисса записывается как число с отброшенной точкой и первой единицей (т.к. в таком представлении числа, число
всегда начинается с единицы и она подразумевается по умолчанию)
То есть 4466126970946788787841796875 в десятичной это 11100110001110100000010000000101100110010010100000101100001011 в двоичной.
Имеем Аж 62 двоичных разряда! придётся обрезать с конца до 23х! Вот здесь и вносится погрешность

Аналогично считаем х, вносим ещё погрешность, при расчётах вносим ещё.. и того и получаем.
 
Текущее время: 02:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru