RIP #03
06 декабря 1997

Школа хаккера - Цикл "БАЗА -1" : Ручной Дракон.

              ┌────────────────────────────────┐
              │              БАЗА-1            │
              │   Семинар Первый.  Основание.  │
              │          (Продолжение.)        │
              └────────────────────────────────┘

    Все   права   на   методические  материалы  Хэкерской  Школы
принадлежат   Арви   Хаккеру   (Илье   Васильеву),   г.  Москва,
2:5020/287@fidonet,  arvi@hsys.msk.ru,  ath@verte.dnntm.rssi.ru.
При  использовании  любых  частей  этого материала в любых целях
обязательна  ссылка  на  первоисточник.  В  случае коммерческого
использования  или  использования для обучения более, чем одного
человека,  обязательна предварительная договоренность с автором.
Данный   материал   изначально   предназначен  для  студентов  и
школьников, учеников Хэкерской Школы.


                       B1:5 Ручной Дракон.
                       ===================

    Если  вы  хорошо прочувствовали нашу аналогию с драконом, то
после  изучения  упрощенных  алгоритмов  Ручного  Дракона  у вас
создастся  впечатление,  что  Дракон теперь очень легко и быстро
вас  слушается,  как будто он стал совсем домашним, "ручным". Hо
внимание!  Стоит вам только выйти за пределы своего дома (систем
счисления  с  основаниями  2, 8, 16), как вам вновь придется его
укрощать и выдерживать его атаки.

    Алгоритмы Ручного Дракона основаны на двух таблицах Дракона,
большой и малой. Вот они:

   +------+---+----+      +-----+---+
   | 0000 | 0 |  0 |      | 000 | 0 |
   | 0001 | 1 |  1 |      | 001 | 1 |
   | 0010 | 2 |  2 |      | 010 | 2 |
   | 0011 | 3 |  3 |      | 011 | 3 |
   | 0100 | 4 |  4 |      | 100 | 4 |
   | 0101 | 5 |  5 |      | 101 | 5 |
   | 0110 | 6 |  6 |      | 110 | 6 |
   | 0111 | 7 |  7 |      | 111 | 7 |
   | 1000 | 8 |  8 |      +-----+---+
   | 1001 | 9 |  9 | Малая таблица Дракона
   | 1010 | A | 10 |
   | 1011 | B | 11 |
   | 1100 | C | 12 |
   | 1101 | D | 13 |
   | 1110 | E | 14 |
   | 1111 | F | 15 |
   +------+---+----+
Большая таблица Дракона

    Когда  мы  рисуем  их  на  бумаге,  мы  обычно отчеркиваем в
Большой  таблице  Дракона  ту часть, которая совпадает с Малой и
получаем  две  таблицы  в  одной. Большая таблица Дракона больше
пригодится при работе с шестнадцатеричными машинами типа IBM PC,
а  Малая - при  работе с восьмеричными машинами, например, серии
БК.

    Эти таблицы так часто всплывают в хэкерской жизни, из таких,
казалось  бы,  с ними никак не связанных мест, что вам все равно
придется  выучить  их  наизусть.  Я  измарал  мелким  подчерком,
наверное,  несколько общих тетрадей, все время восстанавливая их
по  памяти,  пока  не  запомнил.  Вам  советую  не повторять мой
подвиг,  а  выучить  их прямо сейчас -они ой как вам пригодятся.
:-)

    Самое  главное  применение  таблиц Дракона -- переводы между
шестнадцатеричной системой счисления и двоичной (Большая таблица
Дракона)   и   между  восьмеричной  и  двоичной  (Малая  таблица
Дракона).

    Как   известно,   существуют  родственные  языки.  Hапример,
древнеславянский  и  русский,  русский и украинский. Если обычно
при переводе с языка на язык приходится смотреть в словаре целое
слово,  то  при  переводе,  допустим,  с украинского на русский,
достаточно  задать таблицу соответствия между буквами. Hапример,
менять букву 'i' на 'и', а 'и', в свою очередь, на 'ы'.

    Роль  таких "родственных" языков в системах счисления играют
двоичная   и   шестнадцатеричная,  двоичная  и  восьмеричная.  А
таблицей перевода и являются таблицы Дракона. Итак, разберем все
случаи. Следите за нами, здесь есть подводные камни!

                             16->2

    Hу  это  просто.  Каждой  шестнадцатеричной цифре ставятся в
соответствие четыре двоичные цифры (бита, bit = BInary digiT) по
Большой  таблице  Дракона.  После  перевода  всего числа, нолики
слева  (лидирующие  нолики),  если  они  есть, разумеется, можно
зачеркнуть.

   12FC_16 = 0001 0010 1111 1100_2 = 1001011111100_2

                             2->16

    Hемногим   сложнее.  Цепочка  двоичных  бит  разбивается  на
четверки  _СПРАВА_,  если  в последней не будет хватать ноликов,
они дописываются слева.

   1011001011_2 = 0010 1100 1011_2 = 2CB_16

                             8<->2

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

   276_8 = 010 111 110_2 = 10111110_2
   1011001011_2 = 001 011 001 011_2 = 1313_8

    ВHИМАHИЕ!  Алгоритмы Упрощенного Дракона существуют лишь для
переводов  16<->2 и 8<->2. Для перевода 16<->8 надо использовать
промежуточную   двоичную  систему  счисления.  Использование  же
алгоритмов Упрощенного Дракона для перевода в десятичную систему
или  из  нее  -грубейшая  ошибка.  За  нее  вы  будете выгнаны с
аттестации коленкой под зад!

   Вообще, запомните формулу Упрощенного Дракона: 8<->2<->16.

   ВHИМАHИЕ!  Распространенное заблуждение!

    У  каждого  хэкера в жизни бывает период, когда он вдруг (по
какой-то  необъяснимой  причине)  начинает считать, что числа, в
которых  не  используются  буквы,  не  меняются  при  переводе в
десятичную  систему.  То есть, например, 123_16=123_10. Так вот,
ЭТО  HЕ ТАК! Подумайте, почему. Посчитайте, чему равно 123_16 по
алгоритму Укрощения.

>>>

    Часто требуется переводить байты и слова из двоичной системы
в  десятичную.  Вместо  того,  чтобы  долго  и  нудно считать по
алгоритму    Укрощения,   можно   быстро   перевести   число   в
шестнадцатеричную  систему  счисления,  а  уже  потом  из нее -в
десятичную. Экономится куча времени.

   1010 1001_2 = A9_16 = 10*16+9 = 169_10

   Байт переводится мгновенно и в уме!

<<<

                                        (Продолжение следует...)



Другие статьи номера:

7 Origins - Семерка лучших origin'ов-мудрых и не очень выражений.

Marazm - Юмор.

Post... - Повалили хорошие письма.

Wares - Обзор нового поступления: Space 7+, The Fury.

Warez TOP 10 - Лучшая десятка игровых программ и тройка журналов.

ZX-news - Интересная особенность модема.

Вступление - Номер припозднился.

Школа хаккера - Цикл "БАЗА -1" : Ручной Дракон.

Эпилог


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Рассказ - Рассказ "Новые приключения Винни Пуха" (глава 3,4).
рафик BBS - График работы BBS на неделю.
Программирование - о выводе спрайтов. продолжение и ответы на вопросы

В этот день...   16 декабря