leofun01 написав:P.Y. написав:Ніякого зубріння таблиці множення (!) і додавання(?!?!?)? Тобто, це вчитимуть десь так у старших класах (а після реформи старших класів — на першому курсі технічних ВУЗів?)?!
Чи сильно Вам допомає знання таблиць додавання і/або множення, створених для десяткової системи, при обчисленні суми і/або добутку двох чисел в будь-якій іншій системі (в двійковій наприклад) ?
Мені ніфіга не допомагає. Вважаю, що зубрити (що б то не було) це не є добре. Набагато важливіше виробити алгоритми, які дозволять працювати в будь-якій системі відліку.
Але чи будуть вчителі давати дітям такі знання ... це вже інше питання.
Ще роздуми на тему. Коли я користуюсь 8-ковими чи 16-ковими числами, мені заважає, що я не вчив таблиці множення для них. Доводиться рахувати в голові алгоритмічно там, де табличний метод був би ефективнішим.
Або відволічімось від усного множення й поговорімо про машинні операції з двійковими числами. Нехай у нас є 8-розрядне двійкове число, розряди якого пронумеровано 12345678. Треба довільним чином переставити їх (скажімо, в порядку 14852763; як ми знаємо з комбінаторики, всього може бути 8! варіантів таких перестановок — тобто, 40320 різних комбінацій). На рівні електронних схем, це ніби просто реалізується — лише з'єднати в потрібному порядку виводи логічних елементів, але, на жаль, спеціальної машинної команди для цього нема (якщо є, мені нічого невідомо про неї). Можна робити перестановку алгоритмічно:
mov AL, source
rol AL, n1
shl AX, 1
rol AL, n2
shl AX, 1
; ...
rol AL, n8
shl AX, 1
mov res, AH
Такий варіант годиться для невеликої кількості обчислень. Але, якщо подібним чином треба переставити розряди в великому масиві даних, доцільніше обчислити наперед результат перестановок для кожного з можливих значень, записати ці значення в таблицю (масивчик з 256 елементів) і для кожного байта вхідного масиву знайти результат у таблиці (з допомогою xlat чи використовуючи числа з масиву як індекси таблиці перетворень).
До чого я веду. Якщо машина (неважливо, 8086-сумісний процесор чи людський мозок) не має апаратних пристосувань для певних дій, табличний метод дає переваги в швидкості перед алгоритмічним (який, однак, придатний для самостійного генерування таблиць).