Додавання віднімання множення та поділ в інформатиці. Двійкова арифметика. Переведення в двійкову систему числення

Головна \ Документи \ Для вчителя інформатики

При використанні матеріалів цього сайту - та розміщення банера -ОБОВ'ЯЗКОВО!

Двійкова арифметика

Числа якими ми звикли користуватися називаються десятковими та арифметика якої ми користуємося також називається десятковою. Це тому, що кожне число можна скласти з набору цифр, що містить 10 символів - цифр - "0123456789".

Так йшов розвиток математики, що цей набір став головним, але десяткова арифметика не єдина. Якщо ми візьмемо лише п'ять цифр, то на їх основі можна побудувати п'ятирічну арифметику, із семи цифр – семирічну. В областях знань пов'язаних з комп'ютерною технікою часто використовують арифметику, в якій числа складаються з шістнадцяти цифр, відповідно ця арифметика називається шістнадцятковою. Щоб зрозуміти, що таке число в десятковій арифметиці спочатку з'ясуємо, що таке число в десятковій арифметиці.

Візьмемо, наприклад, число 246. Цей запис означає, що в числі дві сотні, чотири десятки та шість одиниць. Отже, можна записати таку рівність:

246 = 200 + 40 + 6 = 2 * 10 2 + 4 * 10 1 + 6 * 10 0

Тут знаками рівності відокремлені три способи запису того самого числа. Найцікавіша нам зараз третя форма запису: 2*102+4*101+6*100. Вона влаштована так:

У нашому числі три цифри. Старша цифра "2" має номер 3. Так от вона множиться на 10 у другому ступені. Наступна цифра "4" має порядковий номер 2 і множиться на 10 у першій. Вже видно, що цифри множаться на десять ступінь на одиницю менше порядкового номера цифри. Усвідомивши сказане, ми можемо записати загальну формулу уявлення десяткового числа. Нехай дано число, де N цифр. Позначатимемо i-ю цифру через a i. Тоді число можна записати у такому вигляді: a n a n-1 …. a 2 a 1 . Це перша форма, а третя форма запису виглядатиме так:

a n a n-1 …. a 2 a 1 = a n * 10 n-1 + a n-1 * 10 n-2 + …. + a 2 * 10 1 + a 1 * 10 0

де a i це символ із набору "0123456789"

У цьому записі дуже добре видно роль десятки. Десятка є основою утворення числа. І до речі вона так і називається "підстава системи числення", а сама система числення, тому так і називається "десятковою". Звичайно, ніякими особливими властивостями число десять не має. Ми можемо замінити десять на будь-яке інше число. Наприклад, число в системі п'ятирічної числення можна записати так:

a n a n-1 …. a 2 a 1 = a n * 5 n-1 + a n-1 * 5 n-2 + …. + a 2 * 5 1 + a 1 * 5 0

де a i це символ із набору "01234"

Загалом, замінюємо 10 на будь-яке інше число та отримуємо зовсім іншу систему числення та іншу арифметику. Найбільш проста арифметика виходить, якщо замінити 10 на 2. Отримана система числення називається двійковою і число в ній визначається наступним чином:

a n a n-1 ….a 2 a 1 = a n * 2 n-1 + a n-1 * 2 n-2 + …. + a 2 * 2 1 + a 1 * 2 0

де a i це символ із набору "01"

Ця система найпростіша з усіх можливих, тому що в ній будь-яке число утворюється лише з двох цифр 0 і 1. Зрозуміло, що простіше вже нема куди. Приклади двійкових чисел: 10111101.

Дуже важливе питання. Чи можна двійкове число подати у вигляді десяткового числа і навпаки, чи можна десяткове число подати у вигляді двійкового.

Двійкове у десяткове. Це дуже просто. Метод такого перекладу дає спосіб запису чисел. Візьмемо, наприклад, наступне двійкове число 1011. Розкладемо його за ступенями двійки. Отримаємо таке:

1011 = 1 * 2 3 + 0 * 2 2 + 1 * 2 1 + 1 * 2 0

Виконаємо всі записані дії та отримаємо:

1 * 2 3 + 0 * 2 2 + 1 * 2 1 + 1 * 2 0 = 8 + 0 + 2 + 1 = 11. Таким чином, отримуємо, що 1011 (двійковий) = 11 (десяткове). Відразу видно і невелику незручність двійкової системи. Те саме число, яке, в десятковій системі записано одним знаком у двійковій системі, для свого запису вимагає чотири знаки. Але це плата за простоту (безкоштовно нічого не буває). Але виграш двійкова система дає величезний в арифметичних процесах. І далі ми це побачимо.

Подайте у вигляді десяткового числа наступні двійкові числа.

а) 10010 б) 11101 с) 1010 в) 1110 г) 100011 д) 1100111 е) 1001110

Додавання двійкових чисел.

Спосіб складання стовпчиком загалом такий самий як і для десяткового числа. Тобто додавання виконується порозрядно, починаючи з молодшої цифри. Якщо при додаванні двох цифр виходить СУМА більше дев'яти, то записується цифра = СУМА-10, а ЦІЛА ЧАСТИНА (СУМА /10), додається у старшому розряді. (Складіть пару чисел стовпчиком згадайте як це робиться.) Так і з двійковим числом. Складаємо порозрядно, починаючи з молодшої цифри. Якщо виходить більше 1, записується 1 і 1 додається до старшого розряду (говорять "на розум пішло").

Виконаємо приклад: 10011+10001.

Перший розряд: 1+1 = 2. Записуємо 0 і 1 на думку пішло.

Другий розряд: 1+0+1(запам'ятана одиниця) =2. Записуємо 0 і 1 на думку пішло.

Третій розряд: 0+0+1(запам'ята одиниця) = 1. Записуємо 1.

Четвертий розряд 0+0=0. Записуємо 0.

П'ятий розряд 1+1=2. Записуємо 0 і додаємо до шостого розряду 1.

Переведемо всі три числа в десяткову систему та перевіримо правильність додавання.

10011 = 1*2 4 + 0*2 3 + 0*2 2 + 1*2 1 + 1*2 0 = 16 + 2 + 1 =19

10001 = 1*2 4 + 0*2 3 + 0*2 2 + 0*2 1 + 1*2 0 = 16 + 1 = 17

100100 = 1*2 5 + 0*2 4 + 0*2 3 + 1*2 2 + 0*2 1 + 0*2 0 =32+4=36

17 + 19 = 36 правильна рівність

Приклади для самостійного вирішення:

а) 11001+101 =

б) 11001+11001=

с) 1001 + 111 =

д) 10011 + 101 =

е) 11011 + 1111 =

д) 11111 + 10011 =

Як десяткове число перевести на двійкове. На черзі наступна операція – віднімання. Але цією операцією ми займемося трохи пізніше, а зараз розглянемо метод перетворення десяткового числа на двійкове.

Для того, щоб перетворити десяткове число на двійкове, його потрібно розкласти по ступенях двійки. Але якщо розкладання за ступенями десятки виходить відразу, то, як розкласти за ступенями двійки, треба трохи подумати. Спочатку розглянемо, як це зробити шляхом підбору. Візьмемо десяткове число 12.

Крок перший. 2 2 = 4 цього мало. Також мало і 23 = 8, а 24 = 16 це вже багато. Тому залишимо 23 =8. 12 – 8 = 4. Тепер потрібно подати у вигляді ступеня двійки 4.

Крок другий. 4 = 2 2 .

Тоді наше число 12 = 23 + 22. Старша цифра має номер 4, старший ступінь = 3, отже, повинні бути складові зі ступенями двійки 1 і 0. Але вони нам не потрібні, тому щоб позбутися непотрібних ступенів, і залишити запишемо число так: 1*2 3 + 1* 2 2 +0*2 1 + 0*2 0 = 1100 - це і є двійкове уявлення числа 12. Неважко помітити, що кожен черговий ступінь - це найбільший ступінь двійки, який менший за число, що розкладається. Щоб закріпити метод, розглянемо ще один приклад. Число 23.

Крок 1. Найближчий ступінь двійки 24 = 16. 23 -16 = 7.

Крок 2. Найближчий ступінь двійки 2 2 = 4. 7 - 4 = 3

Крок 3. Найближчий рівень двійки 2 1 = 2. 3 - 2 = 1

Крок 4. Найближчий рівень двійки 2 0 =1 1 - 1 =0

Отримуємо наступне розкладання: 1*2 4 + 0*2 3 +1*2 2 +1*2 1 +1*2 0

А наше шукане двійкове число 10111

Розглянутий вище метод добре вирішує поставлене перед ним завдання, але є спосіб, який алгоритмізується значно краще. Алгоритм цього методу записано нижче:

Поки ЧИСЛО більше нуля робити

ЧЕРГА ЦИФРА = залишок від розподілу ЧИСЛА на 2

ЧИСЛО = ціла частина від розподілу ЧИСЛА на 2

Коли цей алгоритм завершить свою роботу, послідовність обчислених ЧЕРГОВИХ ЦИФР і представлятиме двійкове число. Наприклад попрацюємо із числом 19.

Початок алгоритму ЧИСЛО = 19

Чергова цифра = 1

Чергова цифра = 1

Чергова цифра = 0

Чергова цифра = 0

Чергова цифра = 1

Отже, в результаті маємо таке число 10011. Зауважте, що два розглянуті методи відрізняються порядком отримання чергових цифр. У першому методі перша отримана цифра - це старша цифра двійкового числа, тоді як у другому перша отримана цифра навпаки молодша.

Перетворіть десяткові числа на двійкові двома способами

а) 14 б) 29 в) 134 г) 158 е) 1190 ж) 2019

Як перетворити на десяткове число дробову частину.

Відомо, що будь-яке раціональне число можна представити у вигляді десяткового та звичайного дробу. Звичайний дріб, тобто дріб виду А/В може бути правильним і неправильним. Дроб називається правильним якщо А<В и неправильной если А>Ст.

Якщо раціональне число представлено неправильним дробом, і навіть чисельник дробу ділиться на знаменник націло, то це раціональне число - число ціле, у всіх інших випадках виникає дробова частина. Дробова частина часто буває дуже довгим числом і навіть нескінченним (нескінченний періодичний дріб, наприклад 20/6), тому у випадку з дробовиною у нас виникає не просто завдання перекладу одного подання в інше, а переклад з певною точністю.

Правило точності. Припустимо, дано десяткове число, яке у вигляді десяткового дробу представимо з точністю до N знаків. Для того, щоб відповідне двійкове число було тієї ж точності, в ньому необхідно записати M - знаків, так що б

А тепер спробуємо отримати правило перекладу, і спочатку розглянемо приклад 5,401

Рішення:

Цілу частину ми отримаємо за відомими нам правилами, і вона дорівнює двійковому числу 101. А дробову частину розкладемо за ступенями 2.

Крок 1: 2 -2 = 0,25; 0,401 – 0,25 = 0,151. - Це залишок.

Крок 2:Тепер потрібно ступенем двійки представити 0,151. Зробимо це: 2 –3 = 0,125; 0,151 – 0,125 = 0,026

Таким чином, вихідну дробову частину можна представити у вигляді 2 -2 +2 -3 . Те саме можна записати таким двійковим числом: 0,011. У першому дробовому розряді стоїть нуль, це тому, що у нашому розкладі ступінь 2 -1 відсутній.

З першого і другого кроків ясно, що це уявлення не точне і можливо розкладання бажано продовжити. Звернемося до правила. Воно каже, що нам потрібно стільки знаків М, щоб 10 3 було менше ніж 2 М. Тобто 1000<2 M . То есть в двоичном разложении у нас должно быть не менее десяти знаков, так как 2 9 = 512 и только 2 10 = 1024. Продолжим процесс.

Крок 3:Нині працюємо з числом 0,026. Найближча до цього ступінь двійки 2 -6 = 0,015625; 0,026 - 0,015625 = 0,010375 тепер наше більш точне двійкове число має вигляд: 0,011001. Після коми вже шість знаків, але цього поки що недостатньо, тому виконуємо ще один крок.

Крок 4:Наразі працюємо з числом 0,010375. Найближча до цього ступінь двійки 2 -7 = 0,0078125;

0,010375 - 0,0078125 = 0,0025625

Крок 5:Наразі працюємо з числом 0,0025625. Найближча до цього ступінь двійки 2 -9 = 0,001953125;

0,0025625 - 0,001953125 = 0,000609375

Останній залишок менше ніж 2 -10 і якби ми хотіли продовжувати наближення до вихідного числа, то нам знадобилося б 2 -11 , але це вже перевищує необхідну точність, а отже розрахунки можна припинити і записати остаточне двійкове уявлення дробової частини.

0,401 = 0,011001101

Як видно, перетворення дробової частини десяткового числа в двійкове уявлення трохи складніше, ніж перетворення цілої частини. Таблиця ступенів двійки наприкінці лекції.

А зараз запишемо алгоритм перетворення:

Вихідні дані алгоритму: Через А будемо позначати вихідний правильний десятковий дріб записаний у десятковій формі. Нехай цей дріб містить N знаків.

Алгоритм

Дія 1. Визначимо кількість необхідних двійкових знаків М з нерівності 10 N< 2 M

Дія 2: Цикл обчислення цифр двійкового уявлення (цифри після нуля). Номер цифри позначатимемо символом До.

  1. Номер цифри = 1
  2. Якщо 2 -К > А

То до запису двійкового числа додаємо нуль

    • до запису двійкового числа додаємо 1
    • А = А - 2-К
  1. К = К + 1
  2. Якщо К > М
  • то робота алгоритму завершена
  • Інакше переходимо до пункту 2.

Переведіть десяткові числа до двійкових

а) 3,6 б) 12,0112 в) 0,231 г) 0,121 д) 23, 0091

Віднімання двійкових чисел. Віднімати числа, будемо також стовпчиком і загальне правило теж, що і для десяткових чисел, віднімання виконується порозрядно і якщо в розряді не вистачає одиниці, вона займається у старшому. Вирішимо наступний приклад:

Перший розряд. 1 – 0 =1. Записуємо 1.

Другий розряд 0 -1. Бракує одиниці. Займаємо її у старшому розряді. Одиниця зі старшого розряду перетворюється на молодший, як дві одиниці (оскільки старший розряд представляється двійкою більшої степени) 2-1 =1. Записуємо 1.

Третій розряд. Одиницю цього розряду ми займали, тому зараз у розряді 0 є необхідність зайняти одиницю старшого розряду. 2-1 =1. Записуємо 1.

Перевіримо результат у десятковій системі

1101 – 110 = 13 – 6 = 7 (111) Вірна рівність.

Ще один цікавий спосіб виконання віднімання пов'язаний з поняттям додаткового коду, який дозволяє звести віднімання до додавання. Виходить число у додатковому коді виключно просто, беремо число, замінюємо нулі на одиниці, одиниці навпаки замінюємо на нулі та до молодшого розряду додаємо одиницю. Наприклад, 10010, у додатковому коді буде 011011.

Правило віднімання через додатковий код стверджує, що віднімання можна замінити на додавання, якщо віднімання замінити на число в додатковому коді.

Приклад: 34 – 22 = 12

Запишемо цей приклад у двійковому вигляді. 100010 – 10110 = 1100

Додатковий код числа 10110 буде таким

01001 + 00001 = 01010. Тоді вихідний приклад можна замінити додаванням так 100010 + 01010 = 101100 Далі необхідно відкинути одну одиницю у старшому розряді. Якщо це зробити, отримаємо 001100. Відкинемо незначні нулі і отримаємо 1100, тобто приклад вирішено правильно

Виконайте віднімання. Звичайним способом і додатковому коді, перевівши попередньо десяткові числа в двійкові:

Виконайте перевірку, перевівши двійковий результат до десяткової системи числення.

Множення у двійковій системі числення.

Спочатку розглянемо наступний цікавий факт. Для того, щоб помножити двійкове число на 2 (десяткова двійка це 10 у двійковій системі) достатньо до множини зліва приписати один нуль.

приклад. 10101 * 10 = 101010

Перевірка.

10101 = 1*2 4 + 0*2 3 + 1*2 2 + 0*2 1 +1*2 0 = 16 + 4 + 1 = 21

101010 =1*2 5 + 0*2 4 + 1*2 3 + 0*2 2 +1*2 1 +0*2 0 = 32 + 8 + 2 = 42

Якщо ми пригадаємо, що будь-яке двійкове число розкладається за ступенями двійки, стає ясно, що множення в двійковій системі числення зводиться до множення на 10 (тобто на десяткову 2), отже, множення це ряд послідовних зрушень. Загальне правило таке: як і десяткових чисел, множення двійкових виконується порозрядно. І для кожного розряду другого множника до першого множника додається один нуль праворуч. Приклад (поки не стовпчиком):

1011 * 101 Це множення можна звести до суми трьох порезрядних множень:

1011*1+1011*0+1011*100=1011+101100=110111 У стовпчик це ж саме можна записати так:

Перевірка:

101 = 5 (десяткове)

1011 = 11 (десяткове)

110111 = 55 (десяткове)

5*11 = 55 правильна рівність

Вирішіть самостійно

а) 1101*1110 =

б) 1010*110 =

д) 101011 * 1101 =

е) 10010*1001 =

Примітка: До речі, таблиця множення в двійковій системі складається тільки з одного пункту 1 * 1 = 1

Розподіл у двійковій системі числення.

Ми вже розглянули три дії і думаю вже зрозуміло, що загалом дії над двійковими числами мало відрізняються від дій над десятковими числами. Різниця з'являється тільки в тому, що цифр дві, а не десять, але це тільки спрощує арифметичні операції. Так само і з поділом, але для кращого розуміння алгоритм поділу розберемо докладніше. Нехай нам необхідно розділити два десяткові числа, наприклад 234 розділити на 7. Як ми це робимо.

Ми виділяємо праворуч (від старшого розряду) таку кількість цифр, щоб число, що вийшло, було якомога менше і в той же час більше дільника. 2 - менше дільника, отже, необхідне нам число 23. Потім ділимо отримане число дільник із залишком. Отримуємо наступний результат:

Описану операцію повторюємо доти, поки отриманий залишок не виявиться меншим за дільник. Коли це станеться, число отримане під межею, це приватне, а останній залишок - це залишок операції. Так ось операція поділу двійкового числа виконується так само. Спробуємо

Приклад: 10010111 / 101

Шукаємо число, від старшого розряду, яке перше було б більше ніж дільник. Це чотирирозрядне число 1001. Воно виділено жирним шрифтом. Тепер необхідно підібрати дільник виділеного числа. І тут ми знову виграємо порівняно з десятковою системою. Справа в тому, що дільник, що підбирається, це обов'язково цифра, а цифри у нас тільки дві. Так як 1001 явно більше 101, то з дільником все зрозуміло це 1. Виконаємо крок операції.

Отже, залишок від виконаної операції 100. Це менше 101, тому щоб виконати другий крок поділу, необхідно додати до 100 наступну цифру, це цифра 0. Тепер маємо наступне число:

1000 більше 101 тому на другому кроці ми знову допишемо до приватної цифри 1 і отримаємо наступний результат (для економії місця відразу опустимо наступну цифру).

Третій крок. Отримане число 110 більше за 101, тому і на цьому кроці ми запишемо в приватне 1. Вийти так:

Отримане число 11 менше 101, тому записуємо в окрему цифру 0 і опускаємо вниз наступну цифру. Виходить так:

Отримане число більше 101, тому приватне записуємо цифру 1 і знову виконуємо дії. Виходить така картина:

1

0

Отриманий залишок 10 менший за 101, але в нас закінчилися цифри в ділимому, тому 10 це остаточний залишок, а 1110 це приватне, що шукається.

Перевіримо у десяткових числах

На цьому ми закінчуємо опис найпростіших арифметичних операцій, які необхідно знати для того, щоб користуватися двійковою арифметикою, і тепер спробуємо відповісти на питання "Навіщо потрібна двійкова арифметика". Звичайно, вище вже було показано, що запис числа в двійковій системі суттєво спрощує арифметичні операції, але водночас сам запис стає значно довшим, що зменшує цінність отриманого спрощення, тому необхідно пошукати такі завдання, розв'язання яких суттєво простіше у двійкових числах.

Завдання 1: Отримання всіх вибірок

Найчастіше зустрічаються завдання, у яких потрібно вміти побудувати всі можливі комбінації із заданого набору предметів. Наприклад, таке завдання:

Дана велика купа каміння, розкласти каміння по двох купах таким чином, щоб маса цих двох куп була якомога більш однаковою.

Це завдання можна сформулювати так:

Знайти таку вибірку каміння з великої купи, що її загальна маса якнайменше відрізнятиметься від половини маси великої купи.

Завдань такого сорту досить багато. І всі вони зводяться, як уже було сказано до вміння отримати всі можливі комбінації (далі ми називатимемо їх вибірками) із заданого набору елементів. І зараз ми розглянемо загальний метод отримання всіх можливих вибірок з використанням операції додавання двійкових чисел. А почнемо з прикладу. Нехай є безліч із трьох предметів. Побудуємо всі можливі вибірки. Предмети позначатимемо порядковими номерами. Тобто є такі предмети: 1, 2, 3.

Вибірки: (0, 0, 1); (0, 1, 0); (0, 1, 1); (1, 0, 0); (1, 0, 1); (1, 1, 0); (1, 1, 1);

Якщо в позиції з черговим номером стоїть одиниця, це означає, що елемент з номером рівним цієї позиції присутній у вибірці, а якщо стоїть нуль, то елемент не присутній. Наприклад, вибірка (0, 1, 0); складається з одного елемента з номером 2, а вибірка (1, 1, 0); складається з двох елементів із номерами 1 та 2.

З цього прикладу ясно видно, що вибірку можна подати у вигляді двійкового числа. Крім того, неважко помітити, що вище записані всі можливі одно, двох та тризначні двійкові числа. Перепишемо їх так:

001; 010; 011; 100; 101; 110; 111

1; 10; 11; 100; 101; 110; 111

Ми отримали ряд послідовних двійкових чисел, кожне з яких виходить з попереднього додавання одиниці. Можете це перевірити. Використовуючи цю помічену закономірність, можна побудувати наступний алгоритм отримання вибірок.

Вихідні дані алгоритму

Даний набір предметів N – штук. Далі називатимемо цей набір безліччю вихідних елементів. Пронумеруємо всі елементи вихідної множини від 1 до N. Складемо двійкове число з N незначних нулів. 0000… 0 N Це нульове двійкове число позначатиме нульову вибірку, з якої і почнеться процес складання вибірок. Розряди числа вважаються праворуч наліво, тобто найлівіший розряд це найстарший.

Домовимося позначати це двійкове число великими літерами Двійкове

Алгоритм

Якщо Двійкове число складається повністю з одиниць

То припиняємо роботу алгоритму

    • Додаємо до ДВАЇВНОГО числа одиницю за правилами двійкової арифметики.
    • З отриманого ДВОЙКОВОГО числа складаємо чергову вибірку, як було описано вище.

Завдання 2: Пошук великих простих чисел

Для початку пригадаємо, що простим числом називається таке натуральне число, яке ділиться тільки на 1 і на себе. Приклади простих чисел: 1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31

Пошук великих простих чисел – дуже важливе математичне завдання. Великі прості числа необхідні надійного шифрування повідомлень деякими алгоритмами шифрування. Причому потрібні не просто великі числа, а дуже великі. Чим більше, тим надійніше шифр, побудований цьому числі.

Примітка. Надійним шифром називається такий шифр, для розшифрування якого потрібен дуже великий час.

Чому? Просте число відіграє роль ключа під час шифрування та дешифрування. Крім того, ми знаємо, що прості числа зустрічаються у ряді натуральних чисел не надто часто. Їх досить багато серед першої тисячі, потім їхня кількість починає швидко зменшуватися. Тому якщо як ключ ми візьмемо не дуже велике число, дешифрувальник за допомогою навіть не дуже швидкого комп'ютера зможе до нього дістатися (перебираючи в якості ключа всі прості одне за одним) за обмежений час.

Достатньо надійний код можна отримати якщо взяти просте в якому, наприклад, 150 знаків. Однак знайти таке просте не так просто. Припустимо, що кілька А (дуже велике) потрібно перевірити на простоту. Це те саме, що пошукати його дільники. Якщо ми зможемо знайти дільники в інтервалі від 2 до квадратний корінь з А, то воно не просте. Оцінимо кількість чисел, які необхідно перевірити на здатність розділити число А.

Припустимо, число А має 150 знаків. Корінь квадратний з нього міститиме не менше 75 знаків. Щоб перебрати таку кількість можливих дільників, нам знадобиться дуже потужний комп'ютер і величезний час, а це означає, що завдання практично не вирішуване.

Як із цим боротися.

По-перше, можна повчитися швидше здійснювати перевірку на ділимість одного числа на інше, по-друге, можна спробувати число А підбирати таким чином, щоб воно було простим з високим ступенем ймовірності. Виявляється, це можливо. Математик Мерсен виявив, що числа наступного виду

Є простими з високим ступенем ймовірності.

Щоб зрозуміти фразу написану вище, порахуємо, скільки простих чисел знаходиться в першій тисячі і скільки чисел Мерсена в цій же тисячі є простими. Отже, числа Мерсена в першій тисячі - це:

2 1 - 1 = 1 ; 2 2 -1 = 3 ; 2 3 - 1 = 7 ; 2 4 - 1 = 15; 2 5 - 1 = 31 ; 2 6 -1 = 63;

2 7 - 1 =127 ; 2 8 -1 = 255; 2 9 - 1 = 511;

Жирним шрифтом позначені прості числа. Усього на 9 чисел Мерсена 5 простих. У відсотках це 5/9*100 = 55,6%. У той самий час на 1000 перших натуральних чисел лише 169 простих. У відсотках це 169/1000 * 100 = 169%. Тобто у першій тисячі у відсотках прості серед чисел Мерсена зустрічаються майже в 4 рази частіше, ніж серед просто натуральних чисел

___________________________________________________________

А тепер візьмемо конкретне число Мерсена, наприклад 24-1. Запишемо його у вигляді двійкового числа.

2 4 - 1 = 10000 - 1 = 1111

Візьмемо наступне число Мерсена 25-1 і запишемо його двійковим числом. Отримаємо таке:

2 5 -1 = 100000 - 1 = 11111

Вже видно, що всі числа Мерсена є послідовністю одиниць і вже сам цей факт дає великий виграш. По-перше, у двійковій системі числення отримати чергове число Мерсена дуже просто, достатньо до чергового дописати одиницю, по-друге, шукати дільники в двійковій системі набагато простіше ніж у десятковій.

Швидкий переведення десяткового числа в двійкове

Одна з головних проблем використання двійкової системи числення - це складність під час переведення десяткового числа в двійкове. Це досить трудомістка справа. Звичайно, невеликі числа трьох або чотиризначних перекласти не надто складно, але для десяткових чисел, у яких 5 і більше знаків це вже важко. Тобто нам потрібен спосіб, що дозволяє швидко переводити у двійкову виставу великі десяткові числа.

Такий спосіб вигадали французький математик Лежандр. Нехай, наприклад, дано число 11183445. Ділимо його на 64, виходить залишок 21 і приватне 174741. Це число ділимо знову на 64, виходить у залишку 21 і приватне 2730. Але 64 в двійковій системі є 1000000, 21 у двійковій системі - 10101, а 42 є 101010, тому, вихідне число запишеться в двійковій системі наступним чином:

101010 101010 010101 010101

Щоб було зрозуміліше, ще один приклад із меншим. Перекладемо подвійне уявлення число 235. Поділимо 235 на 64 із залишком. Отримаємо:

ПРИВАТНЕ = 3, двійкове 11 або 000011

ЗАЛИШОК = 43, двійкове 101011

Тоді 235 = 11101011, Перевіримо цей результат:

11101011 = 2 7 + 2 6 + 2 5 + 2 3 + 2 1 + 2 0 = 128+64+32+8+2+1 = 235

Примітки:

  1. Неважко помітити, що в остаточне двійкове число включаються всі залишки на останньому кроці і залишок і приватне.
  2. Частка записується перед залишком.
  3. Якщо отримане приватне або залишок мають менше 6 розрядів, у двійковому поданні (6 нулів містить двійкове уявлення числа 64 = 1000000), то до нього додаються незначні нулі.

І ще один складний приклад. Число 25678425.

Крок 1: 25678425 ділимо на 64

Приватне = 401225

Залишок = 25 = 011001

Крок 2: 401225 ділимо на 64

Приватне = 6269

Залишок = 9 = 001001

Крок 3: 6269 ділимо на 64

Частка = 97

Залишок = 61 = 111101

Крок 4: 97 ділимо на 64

Частка = 1 = 000001

Залишок = 33 = 100001

Число результат = 1.100001.111101.001001.011001

У цьому числі точкою відокремлені проміжні результати, що входять до нього.

Переведіть у двійкове уявлення числа:

ДОДАТОК: ТАБЛИЦЯ 1

0,015625

0,0078125

0,00390625

0,001953125

0,0009765625

0,00048828125

0,000244140625

0,0001220703125

0,00006103515625

0,000030517578125

0,0000152587890625

0,00000762939453125

0,000003814697265625

0,0000019073486328125

0,00000095367431640625

0,000000476837158203125

Розділи: Інформатика

Ціль: навчити учнів виконувати арифметичні дії у двійковій системі числення .
Завдання:
освітні:
- повторення та закріплення знань учнів про системи числення;
- формувати у школярів вміння виконувати правильно арифметичні дії у двійковій системі числення;
розвиваючі:
- розвивати логічне мислення учнів;
- Розвивати пізнавальний інтерес учнів.

Хід уроку.

Вивчення нового матеріалу.
Правила складання:
0+0=0
0+1=1
1+0=1
1+1=10
Звернути увагу учнів те що, що з додаванні двох одиниць у двійковій системі числення записи виходить 0, а одиниця переноситься у наступний розряд. При складанні трьох одиниць виходить у записі 1 і одиниця переноситься в наступний розряд. (1+1+1=11).

приклад 1.
101+10=111

приклад 2.
10011+11=1110


1001+11=1100
110+110=1100

Правила множення:
0*0=0
0*1=0
1*0=0
1*1=1

приклад 1.
101*11=1111

Пояснення:
Кожну цифру другого множника множимо на кожну цифру першого множника, результати творів складають між собою за правилами додавання в двійковій системі числення. (Математика – 3 клас).

приклад 2.
1011*101=110111

Рішення:

Учні самостійно вирішують такі приклади:
1001*101=101101
1001*11=11011

Правила віднімання:
0-0=0
1-0=1
1-1=0
0-1=-1
Звернути увагу учнів те що, що «мінус» у останньому правилі означає – «зайняти розряд (1)».

приклад 1.
10110-111=1111

Пояснення:
Віднімання виконується так само, як у математиці. Якщо цифра в меншому менше цифри віднімається, то цього віднімання необхідно зайняти розряд (1), т.к. 10-1 = 1. Якщо ліворуч від такого віднімання коштує 0, то ми не можемо зайняти розряд. В цьому випадку розряд займаємо в зменшуваному у близької зліва від даного віднімання одиниці. У цьому все нулі, які ми було неможливо зайняти розряд, потрібно поміняти на одиницю, т.к. 0-1=-1. Бажано всі зміни в цифрах записувати зверху цього віднімання. Подальше віднімання виконувати з цифрами, що виходять зверху.

приклад 2.
100000-11=11101

Учні самостійно вирішують такі приклади:
100010-100=
101011-10111=

Правило розподілу:
Розподіл виконується за правилами математики, не забуваючи, що ми виконуємо дії у двійковій системі числення.

приклад 1.
101101:1001=101

Пояснення:
У приватному сміливо пишемо першу 1, т.к. число в двійковій системі не може починатися з 0. Помножуємо цю 1 на дільник, результат правильно записуємо під ділимом, дотримуючись розрядності. Виконуємо віднімання за правилами віднімання у двійковій системі числення. Зносимо наступну цифру поділюваного, і отримане число порівнюємо з дільником. В даному випадку – отримана кількість менша за дільник, у приватному записуємо 0 (інакше – 1). Зносимо наступну цифру поділеного. Отримали число, що дорівнює дільнику, в приватному записуємо 1, і т.д.

приклад 2.
101010:111=110

Приклади для самостійного вирішення:
1001000:1000=1001
111100:1010=110

Домашнє завдання.
Виконати дії:
1100+1101=
101+101=
1011*101=
111*101=
11011-110=
10001-1110=
1011010:1010=

Арифметичні операції у позиційних системах числення

Розглянемо докладніше арифметичні операції у двійковій системі числення. Арифметика двійкової системи числення ґрунтується на використанні таблиць додавання, віднімання та множення цифр. Арифметичні операнди розташовуються у верхньому рядку та у першому стовпці таблиць, а результати на перетині стовпців та рядків:

Розглянемо докладно кожну операцію.

Додавання.Таблиця двійкового додавання гранично проста. Тільки в одному випадку, коли проводиться додавання 1+1, відбувається перенесення до старшого розряду. ,

Віднімання.При виконанні операції віднімання завжди від більшого за абсолютною величиною числа віднімається менше і ставиться відповідний знак. У таблиці віднімання 1 з рисою означає позику у старшому розряді.

множення.Операція множення виконується з використанням таблиці множення за звичайною схемою, що застосовується в десятковій системі числення з послідовним множенням на чергову цифру множника.

Розподіл.Операція поділу виконується за алгоритмом, подібним до алгоритму виконання операції поділу в десятковій системі числення.

Завдання визначення значень у різних системах числення та його підстав

Завдання 1.Для кодування символів @, $, &, % використовують дворозрядні послідовні двійкові числа. Першому символу відповідає число 00. За допомогою даних символів було закодовано таку послідовність: $%&&@$. Декодуйте цю послідовність і переведіть результат у шістнадцяткову систему числення.

Рішення.

1. Зіставимо двійкові числа кодованим ними символам:
00 — @, 01 — $, 10 — &, 11 — %

3. Перекладемо двійкове число в шістнадцяткову систему числення:
0111 1010 0001 = 7A1

Відповідь. 7A1 16 .

Завдання 2.У саду 100 х фруктових дерев, з яких 33 х – яблуні, 22 х …
- груші, 16 х - сливи, 17 х - вишні. Чому рівна основа системи числення (x).

Рішення.

1. Зауважимо, що це доданки – двозначні числа. У будь-якій системі числення їх можна так:
a * x 1 + b * x 0 = ax + b, де a та b – це цифри відповідних розрядів числа.
Для тризначного числа буде так:
a * x 2 + b * x 1 + c * x 0 = ax 2 + bx + c

2. Умова завдання така:
33 x + 22 x + 16 x + 17 x = 100 x
Підставимо числа у формули:
3x + 3 + 2x +2 + 1x + 6 + 1x + 7 = 1x 2 + 0x + 0
7x + 18 = x 2

3. Розв'яжемо квадратне рівняння:
-x2 + 7x + 18 = 0
D = 7 2 - 4 * (-1) * 18 = 49 + 72 = 121. Квадратний корінь з D дорівнює 11.
Коріння квадратного рівняння:
x = (-7 + 11) / (2 * (-1)) = -2 або x = (-7 - 11) / (2 * (-1)) = 9

4. Негативне число може бути підставою системи числення. Тому x може дорівнювати тільки 9.

Відповідь.Шукана основа системи числення дорівнює 9.

Завдання 3.У системі числення з деякою основою десяткове число 12 записується як 110. Знайдіть цю основу.

Рішення.

Спочатку розпишемо число 110 через формулу запису чисел у позиційних системах числення для знаходження значення в десятковій системі числення, а потім знайдемо підставу шляхом перебору.

110 = 1 * x 2 + 1 * x 1 + 0 * x 0 = x 2 + x

Нам треба отримати 12. Пробуємо 2: 2 2 + 2 = 6. Пробуємо 3: 3 2 + 3 = 12.

Значить основу системи числення дорівнює 3.

Відповідь.Шукана основа системи числення дорівнює 3.

Шістнадцяткова та вісімкова системи числення

Завдання 1.Якому числу у шістнадцятковій системі числення відповідає число 11000101?

Рішення.

При переведенні двійкового числа до шістнадцяткового, перше розбивається на групи по чотири розряди, починаючи з кінця. Якщо кількість розрядів не ділиться націло на чотири, то перша четвірка дописується нулями попереду. Кожній четвірці однозначно відповідає одна цифра шістнадцяткової системи числення.

11000101 = 1100 0101 = С5 16

Немає необхідності мати таблицю відповідності перед очима. Двійковий рахунок перших 15 чисел можна здійснити в розумі або послідовно розписати. При цьому не слід забувати, що 10 у десятковій системі відповідає A у шістнадцятковій, 11 – B, 12 – C, 13 – D, 14 – E, 15 – F.

Відповідь. 11000101 = С5 16

Завдання 2.Обчисліть суму двійкових чисел x та y, за x = 10100 та y = 10101. Результати подайте у вигляді вісімкового числа.

Рішення.

Складемо два числа. Правила двійкової та десяткової арифметики однакові:

При переведенні двійкового числа у вісімкове, перше розбивається на групи по три розряди, починаючи з кінця. Якщо кількість розрядів не ділиться націло на три, то перша трійка дописується нулями попереду:

Відповідь.Сума двійкових чисел 10100 та 10101, представлена ​​у восьмеричній системі числення дорівнює 51.

Переведення в двійкову систему числення

Завдання 1.Чому дорівнює число 37 у двійковій системі числення?

Рішення.

Можна зробити перетворення розподілом на 2 і комбінацією залишків у зворотному порядку.

Інший спосіб - це розкласти число на суму ступенів двійки, починаючи зі старшої, обчислюваний результат якої менше цього числа. При перетворенні пропущені ступеня числа слід замінювати нулями:

37 10 = 32 + 4 + 1 = 2 5 + 2 2 + 2 0 = 1 * 2 5 + 0 * 2 4 + 0 * 2 3 + 1 * 2 2 + 0 * 2 1 + 1 * 2 0 = 100101

Відповідь. 37 10 = 100101 2 .

Завдання 2.Скільки значних нулів у двійковому записі десяткового числа 73?

Рішення.

Розкладемо число 73 на суму ступенів двійки, починаючи зі старшої та помножуючи пропущені ступені надалі на нулі, а існуючі на одиницю:

73 10 = 64 + 8 + 1 = 2 6 + 2 3 + 2 0 = 1 * 2 6 + 0 * 2 5 + 0 * 2 4 + 1 * 2 3 + 0 * 2 2 + 0 * 2 1 + 1 * 2 0 = 1001001

Відповідь.У двійковому записі десяткового числа 73 є чотири значних нуля.

Завдання 3.Обчисліть суму чисел x і y за x = D2 16 , y = 37 8 . Результат подайте в двійковій системі числення.

Рішення.

Згадаймо, кожна цифра шістнадцяткового числа формується чотирма двійковими розрядами, кожна цифра восьмеричного числа – трьома:

D2 16 = 1101 0010
37 8 = 011 111

Складемо отримані числа:

Відповідь.Сума чисел D2 16 і y = 37 8 представлена ​​в двійковій системі числення дорівнює 11110001.

Завдання 4.Дано: a= D7 16 b= 331 8 . Яке з чисел c, записаних у двійковій системі числення, відповідає умові a< c < b ?

  1. 11011001
  2. 11011100
  3. 11010111
  4. 11011000

Рішення.

Перекладемо числа в двійкову систему числення:

D7 16 = 11010111
331 8 = 11011001

Перші чотири розряди у всіх чисел збігаються (1101). Тому порівняння спрощується порівняння молодших чотирьох розрядів.

Перше число з переліку дорівнює числу b, Отже, не підходить.

Друге число більше як b. Третє число дорівнює a.

Лише четверте число підходить: 0111< 1000 < 1001.

Відповідь.Четвертий варіант (11011000) відповідає умові a< c < b .

Переведення в десяткову систему числення

Завдання 1.Якому числу в десятковій системі числення відповідає число 24 16?

Рішення.

24 16 = 2 * 16 1 + 4 * 16 0 = 32 + 4 = 36

Відповідь. 24 16 = 36 10

Завдання 2.Відомо, що X = 124 + 45 + 1012. Чому дорівнює число X у десятковій системі числення?

Рішення.


12 4 = 1 * 4 1 + 2 * 4 0 = 4 + 2 = 6
4 5 = 4 * 5 0 = 4
101 2 = 1 * 2 2 + 0 * 2 1 + 1 * 2 0 = 4 + 0 + 1 = 5
Знаходимо число: X = 6 + 4 + 5 = 15

Відповідь. X = 15 10

Завдання 3.Обчисліть значення суми 10 2 + 45 8 + 10 16 у десятковій системі числення.

Рішення.

Перекладемо кожне доданок до десяткової системи числення:
10 2 = 1 * 2 1 + 0 * 2 0 = 2
45 8 = 4 * 8 1 + 5 * 8 0 = 37
10 16 = 1 * 16 1 + 0 * 16 0 = 16
Сума дорівнює: 2+37+16=55

Відповідь. 55 10

Арифметичні операції у двійковій системі числення

Системи числення

Номер теми:

У двійковій системі числення арифметичні операції виконуються за тими самими правилами, як у десятковій системі числення, т.к. вони обидві є позиційними (поряд з вісімковою, шістнадцятковою та ін.).

Додавання

Додавання однорозрядних двійкових чисел виконується за такими правилами:

В останньому випадку, при складанні двох одиниць відбувається переповнення молодшого розряду, і одиниця переноситься в старший розряд. Переповнення виникає у разі, якщо сума дорівнює підставі системи числення (в даному випадку це число 2) або більше (для двійкової системи числення це не актуально).

Складемо для прикладу два будь-які двійкові числа:

Віднімання

Віднімання однорозрядних двійкових чисел виконується за такими правилами:

0 - 1 = (позика зі старшого розряду) 1

множення

Множення однорозрядних двійкових чисел виконується за такими правилами:

Поділ

Поділ виконується так само як у десятковій системі числення:

Призначення сервісу. Онлайн-калькулятор призначений для складання двійкових чисел у прямому, зворотному та додатковому кодах.

Разом із цим калькулятором також використовують такі:
Переклад чисел у двійкову, шістнадцяткову, десяткову, вісімкову системи числення
Розмноження двійкових чисел
Формат представлення чисел із плаваючою комою
Приклад №1. Подати число 133,54 у формі числа з плаваючою точкою.
Рішення. Представимо число 133.54 у нормалізованому експоненційному вигляді:
1.3354*10 2 = 1.3354*exp 10 2
Число 1.3354*exp 10 2 складається з двох частин: мантиси M=1.3354 та експоненти exp 10 =2
Якщо мантиса знаходиться в діапазоні 1 ≤ M Подання числа у денормалізованому експоненційному вигляді.
Якщо мантиса знаходиться в діапазоні 0,1 ≤ M Представимо число у денормалізованому експонентному вигляді: 0.13354*exp 10 3

Приклад №2. Подати двійкове число 101.10 2 в нормалізованому вигляді, записати в 32-бітовому стандарті IEEE754.
Таблиця істинності


Обчислення меж

Арифметика у двійковій системі числення

Арифметичні дії у двійковій системі виконуються так само, як і в десятковій. Але, якщо в десятковій системі числення перенесення та позику здійснюється по десять одиниць, то в двійковій - по дві одиниці. У таблиці представлені правила складання та віднімання в двійковій системі числення.
  1. При додаванні в двійковій системі системі числення двох одиниць у даному розряді буде 0 і з'явиться перенесення одиниці у старший розряд.
  2. При відніманні з нуля одиниці проводиться позика одиниці зі старшого розряду, де є 1 . Одиниця, зайнята в цьому розряді, дає дві одиниці в розряді, де обчислюється дія, а також одиниці, у всіх проміжних розрядах.

Додавання чисел з урахуванням їх знаків на машині є послідовністю наступних дій:

  • перетворення вихідних чисел на вказаний код;
  • порозрядне складання кодів;
  • аналіз одержаного результату.
При виконанні операції у зворотному (модифікованому зворотному) коді якщо в результаті додавання у знаковому розряді виникає одиниця перенесення, вона додається до молодшого розряду суми.
При виконанні операції у додатковому (модифікованому додатковому) коді якщо в результаті додавання у знаковому розряді виникає одиниця перенесення, вона відкидається.
Операція віднімання в ЕОМ виконується через додавання за правилом: Х-У = Х + (-У). Подальші дії виконуються як і для операції складання.

Приклад №1.
Дано: х = 0,110001; y=-0,001001, скласти у зворотному модифікованому коді.

Дано: х = 0,101001; y=-0,001101, скласти у додатковому модифікованому коді.

Приклад №2. Розв'язати приклади віднімання двійкових чисел, використовуючи метод доповнення до 1 і циклічного переносу.
а) 11 – 10.
Рішення.
Представимо числа 11 2 і -10 2 у зворотному коді.

Двійкове число 0000011 має зворотний код 0,0000011

Складемо числа 00000011 та 11111101

7 6 5 4 3 2 1 0
1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0

7 6 5 4 3 2 1 0
1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0

У другому розряді з'явилося переповнення (1 + 1 = 10). Тому записуємо 0, а 1 переносимо на 3-й розряд.
7 6 5 4 3 2 1 0
1 1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0 0

7 6 5 4 3 2 1 0
1 1 1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0 0 0

7 6 5 4 3 2 1 0
1 1 1 1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0 0 0 0

7 6 5 4 3 2 1 0
1 1 1 1 1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0 0 0 0 0

7 6 5 4 3 2 1 0
1 1 1 1 1 1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0 0 0 0 0 0

7 6 5 4 3 2 1 0
1 1 1 1 1 1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0 0 0 0 0 0 0

У результаті отримуємо:
7 6 5 4 3 2 1 0
1 1 1 1 1 1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0 0 0 0 0 0 0

Виникло перенесення із знакового розряду. Додамо його (тобто 1) до отриманого числа (тим самим здійснюючи процедуру циклічного перенесення).
У результаті отримуємо:
7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 1

Результат складання: 00000001. Перекладемо в десяткове уявлення. Для переведення цілої частини необхідно помножити розряд числа на відповідний ступінь розряду.
00000001 = 2 7 *0 + 2 6 *0 + 2 5 *0 + 2 4 *0 + 2 3 *0 + 2 2 *0 + 2 1 *0 + 2 0 *1 = 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 = 1
Результат додавання (у десятковому поданні): 1

б) 111-010 Представимо числа 111 2 і -010 2 у зворотному коді.
Зворотний код для позитивного числа збігається із прямим кодом. Для негативного числа всі цифри числа замінюються на протилежні (1 на 0, 0 на 1), а знаковий розряд заноситься одиниця.
Двійкове число 0000111 має зворотний код 0,0000111
Двійкове число 0000010 має зворотний код 1,1111101
Складемо числа 00000111 та 11111101
У 0-му розряді виникло переповнення (1 + 1 = 10). Тому записуємо 0, а 1 переносимо на 1-й розряд.

7 6 5 4 3 2 1 0
1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
0

У 1-му розряді з'явилося переповнення (1 + 1 = 10). Тому записуємо 0, а 1 переносимо на 2-й розряд.
7 6 5 4 3 2 1 0
1 1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
0 0

У другому розряді з'явилося переповнення (1 + 1 + 1 = 11). Тому записуємо 1, а 1 переносимо на 3-й розряд.
7 6 5 4 3 2 1 0
1 1 1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
1 0 0

У 3-му розряді з'явилося переповнення (1 + 1 = 10). Тому записуємо 0, а 1 переносимо на 4-й розряд.
7 6 5 4 3 2 1 0
1 1 1 1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
0 1 0 0

У 4-му розряді виникло переповнення (1+1=10). Тому записуємо 0 а 1 переносимо на 5-й розряд.
7 6 5 4 3 2 1 0
1 1 1 1 1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
0 0 1 0 0

У 5-му розряді виникло переповнення (1+1=10). Тому записуємо 0, а 1 переносимо на 6-й розряд.
7 6 5 4 3 2 1 0
1 1 1 1 1 1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
0 0 0 1 0 0

У 6-му розряді виникло переповнення (1+1=10). Тому записуємо 0, а 1 переносимо на 7 розряд.
7 6 5 4 3 2 1 0
1 1 1 1 1 1 1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
0 0 0 0 1 0 0

У 7-му розряді виникло переповнення (1+1=10). Тому записуємо 0, а 1 переносимо на 8-й розряд.
7 6 5 4 3 2 1 0
1 1 1 1 1 1 1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
0 0 0 0 0 1 0 0

У результаті отримуємо:
7 6 5 4 3 2 1 0
1 1 1 1 1 1 1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
0 0 0 0 0 1 0 0

Виникло перенесення із знакового розряду. Додамо його (тобто 1) до отриманого числа (тим самим здійснюючи процедуру циклічного перенесення).
У результаті отримуємо:
7 6 5 4 3 2 1 0
0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 1 0 1

Результат додавання: 00000101
Отримали число 00000101. Для переведення цілої частини необхідно помножити розряд числа на відповідний ступінь розряду.
00000101 = 2 7 *0 + 2 6 *0 + 2 5 *0 + 2 4 *0 + 2 3 *0 + 2 2 *1 + 2 1 *0 + 2 0 *1 = 0 + 0 + 0 + 0 + 0 + 4 + 0 + 1 = 5
Результат додавання (у десятковому поданні): 5

Додавання двійкових дійсних чисел з плаваючою комою

У комп'ютері будь-яке число може бути представлене у форматі з плаваючою точкою. Формат з плаваючою точкою показаний на малюнку:


Наприклад, число 10101 у форматі з плаваючою точкою можна записати так:


У комп'ютерах використовується нормалізована форма запису числа, у якій положення коми завжди задається перед значною цифрою мантиси, тобто. виконується умова:
b -1 ≤|M| Нормалізоване число - це число, у якого після коми йде значна цифра (тобто 1 у двійковій системі числення). Приклад нормалізації:
0,00101*2 100 =0,101*2 10
111,1001*2 10 =0,111001*2 101
0,01101*2 -11 =0,1101*2 -100
11,1011*2 -101 =0,11011*2 -11

При додаванні чисел з плаваючою точкою вирівнювання порядків виконують у бік більшого порядку:

Алгоритм складання чисел з плаваючою точкою:

  1. Вирівнювання порядків;
  2. Додавання мантис у додатковому модифікованому коді;
  3. Нормалізація результату.

Приклад №4.
A = 0,1011 * 2 10, B = 0,0001 * 2 11
1. Вирівнювання порядків;
A = 0,01011 * 2 11, B = 0,0001 * 2 11
2. Додавання мантис у додатковому модифікованому коді;
MA дод. =00,01011
MB дод. =00,0001
00,01011
+ 00,00010
=
00,01101
A+B=0,01101*2 11
3. Нормалізація результату.
A+B=0,1101*2 10

Приклад №3. Записати десяткове число у двійково-десятковій системі числення та скласти два числа у двійковій системі числення.

© 2024. srcaltufevo.ru. Саморозвиток. Здоров'я. Історії успіху. Відносини. Наші діти.