Онлайн калькулятор переклад дробових чисел з однієї системи числення в іншу
Переклад дробових чисел з однієї системи числення в іншу
Результатом став калькулятор, який ви бачите нижче, він вміє переводити і дробові числа в тому числі. Як водиться, для допитливих під калькулятором трохи теорії.
Тепер теорія. Я, чесно кажучи, думав, що питання досить складне, але при найближчому розгляді все виявилося простіше простого. Треба було тільки тримати в голові той факт, що мова йде про позиційних системах числення.
У чому тут суть? Розглянемо на прикладі десяткового числа 6.125. Це дробове число в десятковій системі числення представляється так:
Все просто, чи не так? Та ж сама простота зберігається і при запису дробового числа в будь-який інший системі числення. Візьмемо, наприклад, гаряче улюблену кожним програмістом двійкову систему і число, наприклад, 110.001. Ця запис є не що інше як
Так-так, число для прикладу було обрано не просто так. Тобто, 110.001 в двійковій системі є 6.125 в десяткової. Принцип, я думаю, зрозумілий.
Є тільки одне але - все-таки через те, що тут беру участь дроби з різними знаменниками, не завжди одне і теж число можна однаково точно висловити в різних системах числення. Що я маю на увазі?
Візьмемо, наприклад, число. Дуже добре виглядає в десятковій системі числення. Але от якщо спробувати отримати запис цього числа в двійковій системі числення - будуть проблеми. Спробуємо, поки не будемо втомлюватися
Продовжувати можна ще досить довго, але вже зараз видно, що 0.8 в десятковій системі це 0.11001100. (Далі дуже багато цифр) в двійковій. Чесно кажучи, навіть не знаю, чи можна її висловити точно.
Тому переклад дрібного числа з однієї системи числення в іншу найчастіше дає похибку. Похибка ця залежить від того, скільки розрядів ми використовуємо для запису дробової частини перекладеного числа. Візьмемо приклад з числом 0.8 і використовуємо для запису його двійкового представлення шість розрядів після коми - 0.110011. Отримане число зовсім не 0.8, а 0.796875, різниця при цьому становить 0.003125. Це і є наша похибка перекладу десяткового числа 0.8 в двійковий вигляд при використанні шести розрядів після коми.
Вага крайнього правого розряду (наймолодшого розряду) називається дозволом (resolution) або точністю (precision), і визначає найменше нерівне нулю число, яке може бути представлено даними числом розрядів. Для нашого прикладу це. При цьому максимально можлива похибка подання числа, як неважко здогадатися, не перевищує половини цієї ваги, або 0.0078125. Так що для 0.8 ми маємо ще й не найгіршу похибка.
Ось, власне, і все.