Отправляет email-рассылки с помощью сервиса Sendsay

Assembler с нуля и единицы...

  Все выпуски  

Assembler с нуля и единицы... №4 Двоичная система счисления


Ассемблер
с нуля и единицы
0 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 1 1 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 1 1 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 1 1 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 1 1 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 0 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 1 1 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0 0 0 1 0 1
<<<
Introduction...
>>>
       Прива все кто с нами:) Читателей не прибавилось, но скоро будет сайт, и аудитория думаю расширится, те кто с нами, можете написать мне письма, как рассылка, что хорошо что плохо, что интересно что лишнее, и чего вам хочется побольше? Сегодня выдалось удачное утро и поэтому пишу рассылку с утра, но на умственную активность это никак не влияет... сегодня в номере немного больше материала чем в предыдущем, начинаем изучать в некоторой степени двоичную систему счисления...буду объяснять все на пальцах:) Читаем и учимся вместе!...

Искренне, Ваш RAITN!

<<<
Binary notation
>>>
       Начну с того, что не надо боятся разных систем счисления. Не беспокойтесь, что вы в них запутаетесь, это невозможно ведь они сильно отличаются! Теперь перейдем конкретно к двоичной системе. Во-первых, cтоит сказать, что это "любимая" машинная система счисления. Во-вторых, она как и десятичная, является позиционной.
      Базовая единица компьютерных данных называется бит. Все действия в компьютере выполняются с помощью двух видов сигналов - "0" и "1". Двоичная система счисления подразумевает под собой всего 2 числа, входящие в нее. Другими словами, основание системы q=2 (что такое q смотрим в предыдущем выпуске). Любое число в этой системе может содержать всего 2 цифры из множества {0,1}. Странно? Может быть. Но использование данной системы счисления в программировании дает самое высокое быстродействие в программах. Однако, сейчас никто не программирует нулями и единицами, для этого есть язык Assembler, в котором более менее используются понятные человеку команды.
      Пример двоичных чисел:
01
1101
00101001
...

Искренне, Ваш RAITN!

<<<
Decimal in binary
>>>
       Встает вопрос, а связаны ли позиционные системы между собой? Как я уже упомянул в предыдущем выпуске, да! И связаны они не по какой либо "левой" логике, а по формуле, которая известна очень давно. Сейчас нам необходимо научится переводить числа десятичной системы счисления в числа двоичной.

Правило:

      Для перевода целого десятичного числа в систему счисления с основанием q=2 необходимо данное число последовательно делить на число 2 до получения целого остатка, меньшего, чем 2.
      Результат в двоичной системе счисления будет иметь вид упорядоченной последовательности остатков от деления в порядке, обратном их получению (старшую цифру числа дает последний остаток, а младшую первый).

      Разберемся с этим на конкретных примерах. (К сожалению, графика в выпуске недопустима и поэтому делить столбиком я не могу, но могу обычным дедовским способом, приступим...)

      Перевод числа 29 в двоичную систему счисления:
29 : 2 = 14(1 в остатке)
14 : 2 = 7  (0 в остатке)
7 : 2 = 3    (1 в остатке)
3 : 2 = 1    (1 в остатке)
1 : 2 = 0    (1 в остатке)

      Не забываем, что при получении результата остатки нужно писать в обратном порядке!

       Получается что число 29 в десятичной соответствует числу 11101 в двоичной системе счисления. Если вы поняли как это делается, то это замечательно, если нет, то переходим к следующему примеру, и попробуйте уже в этот раз разобраться...

      Перевод числа 77 в двоичную систему счисления:
77 : 2 = 38 (1 в остатке)
38 : 2 = 19 (0 в остатке)
19 : 2 = 9   (1 в остатке)
9 : 2 = 4     (1 в остатке)
4 : 2 = 2     (0 в остатке)
2 : 2 = 1     (0 в остатке)
1 : 2 = 0     (1 в остатке)

      Не забываем, что при получении результата остатки нужно писать в обратном порядке!

             Число 77 в десятичной соответствует числу 1001101 в двоичной. Думаю, теперь то вы точно разобрались. Видно что числовая запись двоичных чисел намного больше десятичных, этим то она и неудобна для использования в повседневной жизни. Мы будем говорить в следующих номерах про шестнадцатиричную систему счисления, которая удобнее десятичной и почему же она тогда не используется в повседневной жизни...
      Сейчас посмотрим, как с точки зрения программиста лучше и понятнее записать переводы чисел в текстовом виде:

29 decimal -> 11101 binary
Запись на Ассемблере делается с помощью дескрипторов:
D - decimal (Десятичная система счисления - это дескриптор по умолчанию, обычно не пишется)
B - binary (двоичная система счисления)
29d -> 11101b

В повседневной же жизни, на бумаге например, используется такой вид записи:
2910 -> 111012
(понятно, что в нижнем регистре пишется основание системы "q").

Теперь запишем по нашему правилу число 77:
77 decimal -> 1001101 binary
77d -> 1001101b
7710 -> 10011012

      Задание:
Переведите числа 33 , 96 , 157 , 13789 в двоичную систему счисления....попрактикуйтесь...

Искренне, Ваш RAITN!

<<<
...In summary
>>>
       Подошел к концу 4-й выпуск рассылки. Рад был снова с вами поговорить, дорогие читатели. В следующей рассылке я опубликую ответы на данное мной задание и поучимся переводить не только целые, но и дробные числа в двоичную систему счисления! Может будет ещё что-то, но пока я не планировал. Так что до встречи!

Искренне, Ваш RAITN!

<<<
As with me to communicate
>>>
Емайл: assemblermain@mail.ru

Все авторские права на данный материал принадлежат автору рассылки и перепечатываются только с его согласия!
Copyright(C) 2007, RAITN.

Искренне, Ваш RAITN!


В избранное