Основы объектно-ориентированного программирования на языке C# book | Page 86

6 Зображення чисел у комп’ютерi 6.3 Правило визначення точностi зображення Припустимо, що задано десяткове число, яке у виглядi десяткового дробу зображується з точнiстю до N знакiв. Для того, щоб вiдповiдне двiйкове число було тiєı̈ самоı̈ точностi, у ньому необхiдно записати M знакiв так, щоб 2 M > 10 N . Запишемо алгоритм перетворення. Вхiднi данi алгоритму: через A позначатимемо вихiдний правильний десятковий дрiб, записаний у десятковiй формi. Нехай цей дрiб мiстить N знакiв. Алгоритм: 1. Визначимо кiлькiсть необхiдних двiйкових знакiв M з нерiвностi 2 M > 10 N . 2. Здiйснюємо переведення цiлоı̈ частини числа. 3. Цикл обчислення цифр двiйкового зображення дробовоı̈ частини числа. Номер цифри пiсля десятковоı̈ крапки будемо позначати символом K. 3.1. K = 1. 3.2. Якщо 2 −K > A, то в запис двiйкового числа на K-те мiсце записуємо нуль iнакше у запис двiйкового числа на K-те мiсце записуємо 1 i A = A − 2 −K 3.3. K = K + 1. 3.4. Якщо K > M , то робота алгоритму завершена, iнакше пе- реходимо до пункту 2. Вихiднi данi: запис числа у двiйковому зображеннi. Нехай необхiдно перевести число 5.401 у двiйкову систему числен- ня. Цiла частина зображується двiйковим числом 101. Дробову части- ну розкладемо за степенями двiйки. Нам необхiдно одержати стiль- ки знакiв M двiйкового зображення, щоб 10 3 було менше 2 M , тобто 1000 < 2 M . Тодi у двiйковому розкладаннi має бути не менше десяти знакiв, оскiльки 2 9 = 512 i тiльки 2 10 = 1024. Наведемо послiдовнiсть виконання алгоритму. Крок 1. 2 −2 = 0.25; 0.401 − 0.25 = 0.151. Крок 2. Тепер необхiдно степенем двiйки зобразити 0.151: 2 −3 = 0.125; 0.151 − 0.125 = 0.026. Крок 3. Найближчий до цього числа 0.026 степiнь двiйки 86