Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
В идеале, количество значащих цифр двоичной мантиссы числа должно быть равно количеству разрядов машинной мантиссы.Не «равно», а «не больше».
И в каждой статье речь всегда об одном и том же. Зачем?
= 9007199254740991*2^-53= 0,99999999999999988897769753748435. Жирным шрифтом помечены верные цифры, соответствующие значащим десятичным цифрам максимального пятнадцатизначного дробного десятичного числа.Здесь автор не говорит про конкретные цифры?
Округление двоичных чисел приводит к уменьшению учитываемых верных цифр в округленном числе и к изменению неверных цифр в его десятичном эквиваленте
Чтобы десятичное число было преобразовано к двоичному виду максимально точно, необходимо, чтобы в двоичном представлении десятичного числа было учтено как можно больше значащих цифр. В идеале, количество значащих цифр двоичной мантиссы числа должно быть равно количеству разрядов машинной мантиссы. Для этой цели десятичное число разлагают по степеням двойки до тех пор, пока количество значащих цифр двоичного числа не сравняется с количеством разрядов машинной мантиссы или не будет разложено точно. Полученное таким образом число нормализуют
Процедура нормализации никак не меняет значение числа, а следовательно и точность его представления.
0.2=0.210
Каким боком вообще тут округление? Не говоря уже вот про такую дичь:
0.2=0.210
Я не понял какие значащие 8 чисел вы берёте
Это случай без нормализации.
10 бит у вас может получиться только ПОСЛЕ нормализации:
0.0011001100 10бит
0.11001100 <-сдвинули получилось 8 бит + степень
Вот, конкретно только что влепленный минус в вышестоящее сообщение.
что не правильно в вычислениях?
0.001100110011 = 0.19995117
Чтобы не рассматривать вновь появившиеся цифры, новое десятичное число округляют. Это новое, уже третье значение десятичного числа будет приближенным числом
Погрешность – это фундаментальная характеристика любой измеряемой величины, и только одна из её компонентов связана с записью числа в виде цифр.
Источники [1] и [2] описывают двоичное представление вещественных чисел.
и вообще не касаются чрезмерно любимой Вами десятичной системы
десятичным числам, непредставимым в двоичной системе с выбранной для расчётов точностью, практически неоткуда появиться в жизни современного человека, так как первоисточником почти всех прецизионных измерений являются двоичные датчики.Мне трудно представить, что человечество оперирует исключительно данными двоичных датчиков. Видимо не дотягивает до современного человека.
Можно, если угодно, смотреть на такие числа, как на некий артефакт, позволяющий нам руками записывать на бумаге значения, несуществующие в окружающем нас цифровом двоичном мире (например, упомянутое Вами число 0.2)
Когда вы записали “жульническое” число 0.2, то в действительности это значит только то, что вы заведомо ограничились погрешностью представления 0.05 (половина цены младшего разряда), и рассуждать о более младших разрядах не имеет смысла.
Написано хлестко, только смысл фразы не ясен. С «фундаментальной характеристикой измеряемой величины» не спорю. А вот про компоненту не понятно. Это относится к фундаментальной характеристике или к измеряемой величине? И как можно число записать без цифр или других символов, однозначно их заменяющих?
А вещественные числа в какой системе первоначально представляются?
Тут не только меня надо в этом винить. Физики и математики свои уравнения почему-то привыкли решать в десятичной системе счисления.
Бухгалтера зарплату тоже считают почему-то в десятичной системе.
Чем же число 0.2 вам так насолило, что вы его называете «жульническим»? Не потому ли, что оно никак не вписывается в ваш двоичный мир?
Когда я записал число 0.2, предполагая, что это такая часть от 10 человек, равная 2 человекам, то имел ввиду целых человеков. Т.к. трудно себе представить ошибку в 0.05 человека.
Начнём с того, что значение можно представить, не записывая число. Например, аналоговым физическим параметром.Представить себе можно, но передать кому-то это представление возможно только вместе с термометром. А уж в компьютер впихнуть ну никак не получится.
Если же мы к этому термометру приделаем датчик для автоматического ввода его значения в компьютер, то прибавится инструментальная погрешность датчика и погрешность цифрового представления, равная половине младшего двоичного разряда.Погрешность цифрового представления здесь возникла относительно чего? Относительно аналогового физического параметра, который мы визуально наблюдаем или относительно некоего десятичного числа, которое мы хотели бы представить без погрешностей, ибо эта погрешность — бесплатный бонус, который может испортить нам жизнь.
Вся арифметика вытекает из взаимоотношений целых чисел. Хорошее целое число 3 и хорошее целое число 7 при делении дают отвратительное число 3/7, которым недовольны, как в приличном обществе так и в не очень:).Когда я записал число 0.2, предполагая, что это такая часть от 10 человек, равная 2 человекам, то имел ввиду целых человеков. Т.к. трудно себе представить ошибку в 0.05 человека.
Это арифметика целых чисел.
Представить себе можно, но передать кому-то это представление возможно только вместе с термометром.
Если же мы к этому термометру приделаем датчик для автоматического ввода его значения в компьютер, то прибавится инструментальная погрешность датчика и погрешность цифрового представления, равная половине младшего двоичного разряда.
Погрешность цифрового представления здесь возникла относительно чего?
Относительно аналогового физического параметра, который мы визуально наблюдаем или относительно некоего десятичного числа, которое мы хотели бы представить без погрешностей, ибо эта погрешность — бесплатный бонус, который может испортить нам жизнь.
Вся арифметика вытекает из взаимоотношений целых чисел. Хорошее целое число 3 и хорошее целое число 7 при делении дают отвратительное число 3/7, которым недовольны, как в приличном обществе так и в не очень:).
Компьютеру совершенно все равно, с какой биографией ему подсовывают число. Он его врспринимает для себя точным, а уж потом портит, в силу своей природы.
Почему нельзя? Можно. Например, уровнем напряжения в проводе.
Без погрешностей ничего не бывает.Бывает, например, для некоторых операций с целыми числами. А когда погрешности неизбежны, их можно уменьшить или увеличить, выбирая те или иные параметры представления чисел в компьютере.
Хорошее целое число 3 и хорошее целое число 7 при делении дают хорошее целое число 0.Скажите это продавцу, который рассыпает 3 кг. сахара по 7 пакетов. Он будет счастлив.
Как правило, в реальности определяющее значение имеет либо методическая или инструментальная погрешности, не связанные с числовым представлением величины, либо погрешность вычислений, имеющая чисто компьютерную, двоичную природу.Вот на тех, кому важна погрешность вычислений, имеющая чисто компьютерную, двоичную природу и расчитана моя статья.
Снова о числах с плавающей точкой