Паскаль: подання чисел та інших значень, Детальна інформація
Паскаль: подання чисел та інших значень
ПАСКАЛЬ:ПОДАННЯ ЧИСЕЛ ТА ІНШИХ ЗНАЧЕНЬ
1. Позиційні системи числення
1.1. Запис натуральних чисел
Система числення – це система запису, або позначення, чисел. Найдосконалішими системами числення виявилися позиційні. У цих системах число, позначене цифрою, залежить від її місця (позиції) в записі числа. Наприклад, звичні нам записи 13 і 31 у десятковій системі складаються з однакових цифр (значків "1" і "3"), але позначають різні числа 1\xF0D7 10+3 і 3\xF0D7 10+1.
Позиційна система числення з основою P (P-кова) має P цифр C0, C1, … , CP-1, що звичайно позначають натуральні числа від 0 до P-1. Ці записи та позначені ними числа – значення цих записів – називаються однорозрядними P-ковими.
Цифри десяткової системи 0, 1, 2, … , 9 називаються арабськими, хоча й були запозичені арабами в індусів.
У програмуванні широко застосовується шістнадцяткова система, в якій перші 10 цифр арабські, а наступні шість – A, B, C, D, E, F. Вони позначають числа, десятковий запис яких 10, 11, 12, 13, 14, 15 відповідно.
Число P у P-ковій системі позначається дворозрядним записом C1C0, число P+1 – записом C1C1 тощо до P\xF0D7 P-1. Наприклад, 10, 11, ... , 99 у десятковій системі, 10, 11 у двійковій, 10, 11, … , 1F, 20, … , FF у 16-ковій. Число P\xF0D7 P позначається вже трьома цифрами C1C0C0, далі йде C1C0C1 тощо. Наприклад, 100, 101, … , 999 у десятковій системі, 100, 101, 110, 111 у двійковій, 100, 101, … , FFF у 16-ковій. І взагалі, запис вигляду
(akak-1\xF0BC a1a0)P
позначає в P-ковій системі число, що є значенням полінома
ak\xF0D7 Pk+ak-1\xF0D7 Pk-1+\xF0BC +a1\xF0D7 P+a0.
Наприклад, двійковий запис (10011)2 позначає число, яке в десятковому записі має вигляд 1\xF0D7 24+0\xF0D7 23+0\xF0D7 22+1\xF0D7 21+1\xF0D7 20=19. 16-ковий запис (1BC)16 позначає десяткове 1\xF0D7 162+11\xF0D7 16+12=444.
Найправіша цифра в запису числа позначає кількість одиниць і називається молодшою, найлівіша – кількість чисел Pk і називається старшою.
Ми звикли до десяткового подання чисел, і саме воно, головним чином, використовується в Паскаль-программах, але в комп'ютері числа, як правило, подаються в двійковій системі. Таким чином, виникає необхідність створювати двійкове подання числа за його десятковим записом і навпаки. Зауважимо до речі, що такі перетворення записів чисел з однієї системи в іншу здійснюються при виконанні процедур читання і запису readln і writeln.
За P-ковим записом (akak-1 \xF0BC a1a0)P натурального числа N можна побудувати десяткове подання, обчисливши значення полінома за допомогою операцій множення та додавання в десятковій системі. Саме цим ми займалися двома абзацами вище.
Розглянемо, як одержати за натуральним числом N цифри його P-кового подання. Нехай N=(akak-1 \xF0BC a1a0)P, і кількість цифр k+1 невідомі. Запишемо подання в такому вигляді:
N = ak\xF0D7 Pk+ak-1\xF0D7 Pk-1+\xF0BC +a1\xF0D7 P+a0 = (…(ak\xF0D7 P+ak-1)\xF0D7 P+\xF0BC +a1)\xF0D7 P+a0.
Звідси очевидно, що значенням a0 є N mod P, a1 – (N div P) mod P тощо. Таким чином, якщо поділити N на P у стовпчик, то остача від ділення буде значенням молодшої цифри. Потім можна так само поділити на P частку від першого ділення – остача буде виражати кількість "P-кових десятків" тощо поки остання частка не виявиться менше P. Вона й буде значенням старшої цифри. При P>10 ще треба перетворити числа більше 9 у цифри. Наприклад, одержимо цифри 16-кового подання десяткового числа 1022:
_1022 | 16 _63 | 16
96 63 48 3
_62 15
48
14
Виділені 14, 15 і 3 – це кількості 16-кових "одиниць", "десятків" і "сотень" відповідно. Позначимо їх 16-ковими цифрами E, F і 3 відповідно та одержимо запис 3FE.
Якщо натуральне N подано в базовому типі цілих, то одержати його P-кові цифри можна за наступним алгоритмом (остання цифра утворюється як остача від ділення на P частки, меншої від P):
while N > 0 do
begin
d:= N mod P ;
за значенням d побудувати P-кову цифру;
N := N div P
1. Позиційні системи числення
1.1. Запис натуральних чисел
Система числення – це система запису, або позначення, чисел. Найдосконалішими системами числення виявилися позиційні. У цих системах число, позначене цифрою, залежить від її місця (позиції) в записі числа. Наприклад, звичні нам записи 13 і 31 у десятковій системі складаються з однакових цифр (значків "1" і "3"), але позначають різні числа 1\xF0D7 10+3 і 3\xF0D7 10+1.
Позиційна система числення з основою P (P-кова) має P цифр C0, C1, … , CP-1, що звичайно позначають натуральні числа від 0 до P-1. Ці записи та позначені ними числа – значення цих записів – називаються однорозрядними P-ковими.
Цифри десяткової системи 0, 1, 2, … , 9 називаються арабськими, хоча й були запозичені арабами в індусів.
У програмуванні широко застосовується шістнадцяткова система, в якій перші 10 цифр арабські, а наступні шість – A, B, C, D, E, F. Вони позначають числа, десятковий запис яких 10, 11, 12, 13, 14, 15 відповідно.
Число P у P-ковій системі позначається дворозрядним записом C1C0, число P+1 – записом C1C1 тощо до P\xF0D7 P-1. Наприклад, 10, 11, ... , 99 у десятковій системі, 10, 11 у двійковій, 10, 11, … , 1F, 20, … , FF у 16-ковій. Число P\xF0D7 P позначається вже трьома цифрами C1C0C0, далі йде C1C0C1 тощо. Наприклад, 100, 101, … , 999 у десятковій системі, 100, 101, 110, 111 у двійковій, 100, 101, … , FFF у 16-ковій. І взагалі, запис вигляду
(akak-1\xF0BC a1a0)P
позначає в P-ковій системі число, що є значенням полінома
ak\xF0D7 Pk+ak-1\xF0D7 Pk-1+\xF0BC +a1\xF0D7 P+a0.
Наприклад, двійковий запис (10011)2 позначає число, яке в десятковому записі має вигляд 1\xF0D7 24+0\xF0D7 23+0\xF0D7 22+1\xF0D7 21+1\xF0D7 20=19. 16-ковий запис (1BC)16 позначає десяткове 1\xF0D7 162+11\xF0D7 16+12=444.
Найправіша цифра в запису числа позначає кількість одиниць і називається молодшою, найлівіша – кількість чисел Pk і називається старшою.
Ми звикли до десяткового подання чисел, і саме воно, головним чином, використовується в Паскаль-программах, але в комп'ютері числа, як правило, подаються в двійковій системі. Таким чином, виникає необхідність створювати двійкове подання числа за його десятковим записом і навпаки. Зауважимо до речі, що такі перетворення записів чисел з однієї системи в іншу здійснюються при виконанні процедур читання і запису readln і writeln.
За P-ковим записом (akak-1 \xF0BC a1a0)P натурального числа N можна побудувати десяткове подання, обчисливши значення полінома за допомогою операцій множення та додавання в десятковій системі. Саме цим ми займалися двома абзацами вище.
Розглянемо, як одержати за натуральним числом N цифри його P-кового подання. Нехай N=(akak-1 \xF0BC a1a0)P, і кількість цифр k+1 невідомі. Запишемо подання в такому вигляді:
N = ak\xF0D7 Pk+ak-1\xF0D7 Pk-1+\xF0BC +a1\xF0D7 P+a0 = (…(ak\xF0D7 P+ak-1)\xF0D7 P+\xF0BC +a1)\xF0D7 P+a0.
Звідси очевидно, що значенням a0 є N mod P, a1 – (N div P) mod P тощо. Таким чином, якщо поділити N на P у стовпчик, то остача від ділення буде значенням молодшої цифри. Потім можна так само поділити на P частку від першого ділення – остача буде виражати кількість "P-кових десятків" тощо поки остання частка не виявиться менше P. Вона й буде значенням старшої цифри. При P>10 ще треба перетворити числа більше 9 у цифри. Наприклад, одержимо цифри 16-кового подання десяткового числа 1022:
_1022 | 16 _63 | 16
96 63 48 3
_62 15
48
14
Виділені 14, 15 і 3 – це кількості 16-кових "одиниць", "десятків" і "сотень" відповідно. Позначимо їх 16-ковими цифрами E, F і 3 відповідно та одержимо запис 3FE.
Якщо натуральне N подано в базовому типі цілих, то одержати його P-кові цифри можна за наступним алгоритмом (остання цифра утворюється як остача від ділення на P частки, меншої від P):
while N > 0 do
begin
d:= N mod P ;
за значенням d побудувати P-кову цифру;
N := N div P
The online video editor trusted by teams to make professional video in
minutes
© Referats, Inc · All rights reserved 2021