Подання чисел числа в математиці
Число - найважливіше поняття математики, яке складалося і розвивалося протягом тривалого періоду історії людства. Люди почали працювати з числами ще з первісних часів. Спочатку людина оперував лише цілими позитивними числами, які називаються натуральними числами: 1, 2, 3, 4, ... Довго існувала думка про те, що є найбільше число, "більш цього несть людському розуму разумеваті" (так писали в старослов'янських математичних трактатах) .
Розвиток математичної науки привело до висновку, що найбільшого числа немає. З математичної точки зору ряд натуральних чисел нескінченний, тобто не обмежений. З появою в математиці поняття негативного числа (Р. Декарт, XVII століття в Європі; в Індії значно раніше) виявилося, що безліч цілих чисел необмежено як "зліва", так і "справа". Математичне безліч цілих чисел дискретно і необмежено (нескінченно).
Поняття речового (або дійсного) числа в математику ввів Ісаак Ньютон в XVIII столітті. З математичної точки зору безліч дійсних чисел нескінченно і безперервно. Воно включає в себе безліч цілих чисел і ще безліч нецілих чисел. Між двома будь-якими точками на числовій осі лежить безліч дійсних чисел. З поняттям реального числа пов'язано уявлення про безперервну числової осі, будь-якій точці якої відповідає дійсне число.
Далі йтиметься про особливості подання чисел в обчислювальних пристроях: комп'ютерах, калькуляторах.
Подання цілих чисел
У пам'яті комп'ютера числа зберігаються в двійковій системі числення (див. "Системи числення" 2). Є дві форми представлення цілих чисел в комп'ютері: цілі без знака і цілі зі знаком.
Цілі без знака- етомножество позитивних чисел в діапазоні [0, 2k -1]. гдеk - це розрядність комірки пам'яті, що виділяється під число. Наприклад, якщо під ціле число виділяється осередок пам'яті розміром в 16 розрядів (2 байта), то найбільше число буде таким:
У десятковій системі числення це відповідає 2 16 - 1 = 65 535
Якщо у всіх розрядах осередку нулі, то це буде нуль. Таким чином, в 16-розрядної осередку поміщається 2 16 = 65 536 цілих чисел.
Цілі числа зі знаком- це безліч позитивних і негативних чисел в діапазоні [-2 k -1. 2 k -1 - 1]. Наприклад, пріk = 16 діапазон представлення цілих чисел: [-32 768 32 767]. Старший розряд осередку пам'яті зберігає знак числа: 0 - число позитивне, 1 - число від'ємне. Найбільше позитивне число 32 767 має таке уявлення:
Наприклад, десяткове число 255 після перекладу в двійкову систему числення і вписування в 16-розрядну комірку пам'яті матиме наступне внутрішнє уявлення:
Негативні цілі числа представляються в додатковому коді. Додатковий код позитивного чіслаN - етотакое його двійкове подання, яке при додаванні з кодом чіслаNдает значення 2 k. Здесьk - кількість розрядів в комірці пам'яті. Наприклад, додатковий код числа 255 буде наступним:
Це і є уявлення негативного числа -255. Складемо коди чисел 255 і -255:
Одиниця в старшому розряді "випала" з осередку, тому сума вийшла рівною нулю. Але так і повинно бути: N + (-N) = 0. Процесор комп'ютера операцію віднімання виконує як складання з додатковим кодом від'ємника числа. При цьому переповнення комірки (вихід за граничні значення) не викликає переривання виконання програми. Ця обставина програміст зобов'язаний знати і враховувати!
Формат подання дійсних чисел у комп'ютері називаетсяформатом з плаваючою точкою. Речовий чіслоR представляється у вигляді добутку мантіссиm на підставу системи счісленіяn в деякій цілої степеніp. яку називають порядком: R = m * np.
Подання числа в формі з плаваючою крапкою неоднозначно. Наприклад, для десяткового числа 25,324 справедливі такі рівності:
25,324 = 2,5324 * 10 1 = 0,0025324 * 10 4 = 2532,4 * 10 -2 і т.п.
Щоб не було неоднозначності, домовилися в ЕОМ використовувати нормалізоване подання числа в формі з плаваючою точкой.Мантісса в нормалізованому поданні повинна задовольняти умові: 0,1nm <1n . Иначе говоря, мантисса меньше единицы и первая значащая цифра — не ноль. В некоторых случаях условие нормализации принимают следующим: 1nm <10n .
У пам'яті компьютерамантіссапредставляется як ціле число, що містить тільки значущі цифри (0 цілих і кома не зберігаються). Отже, внутрішнє уявлення дійсного числа зводиться до подання пари цілих чисел: мантиси і порядку.
У різних типах комп'ютерів застосовуються різні варіанти представлення чисел у формі з плаваючою крапкою. Розглянемо один з варіантів внутрішнього уявлення дійсного числа в чотирьохбайтового осередку пам'яті.
В осередку повинна міститися наступна інформація про кількість: знак числа, порядок і значущі цифри мантиси.
У старшому бите 1-го байта зберігається знак числа: 0 позначає плюс, 1 - мінус. Решта 7 біт першого байта містять машинний порядок. У наступних трьох байтах зберігаються значущі цифри мантиси (24 розряду).
У семи довічних розрядах поміщаються двійкові числа в діапазоні від 0000000 до 1111111. Значить, машинний порядок змінюється в діапазоні від 0 до 127 (в десятковій системі числення). Всього 128 значень. Порядок, очевидно, може бути як позитивним, так і негативним. Розумно ці 128 значень розділити порівну між позитивними і негативними значеннями порядку: від -64 до 63.
Машинний порядоксмещен щодо математичного і має тільки позитивні значення. Зсув вибирається так, щоб мінімального математичного значенням порядку відповідав нуль.
Зв'язок між машинним порядком (Mp) і математичним (p) в даному випадку виражається формулою: Mp = p + 64.
Отримана формула записана в десятковій системі. У двійковій системі формула має вигляд: Mp2 = p2 + 100 00002.
Для запису внутрішнього уявлення дійсного числа необхідно:
1) перевести модуль даного числа в двійкову систему числення з 24 значущими цифрами,
2) нормалізувати двійкове число,
3) знайти машинний порядок в двійковій системі числення,
4) з огляду на знак числа, виписати його подання до чотирьохбайтового машинному слові.
Приклад. Записати внутрішнє уявлення числа 250,1875 в формі з плаваючою крапкою.
1. Переведемо його в двійкову систему числення з 24 значущими цифрами: