БИТЫ И БАЙТЫ
(С) J.Burglar/Last Masters
-----------------------------------------
Минимальной единицей информации в компь-
ютере является БИТ. Бит может быть либо
"выключен", при этом его значение равно
нулю, либо "включен", тогда его значение
равно единице. Один бит не обеспечивает
большого количества информации, в отличии
группы битов.
Группа из восьми бит преставляет собой
БА Т. Эти биты обеспечивают основу для
представления чисел от 0 до 255. Восемь
бит дают 256 различных комбинаций вклю-
ченных и выключенных состояний:
- от "все выключены" (00000000)
- до "все включены" (11111111)
Например:
число 5 будет выглядеть так - (00000101),
а число 166 вот так (10100110). По согла-
шению биты в байте пронумерованы от 0 до
7 справа налево.
Номера битов: 7 6 5 4 3 2 1 0
Значение битов: 1 0 1 0 0 1 1 0 = 166
Двоичные числа
==============
Так как компьютер может различить только
нулевое и единичное состояние бита, то он
работает в системе с основанием 2 или в
двоичной системе.
Сочетанием двоичных цифр (битов) можно
представить любое значение. Значение дво-
ичного числа определяется относительной
позицией каждого бита и наличием единич-
ных битов. Ниже показано восьмибитное
число, содержащее некоторые единичные би-
ты:
Позuцuонные веса
================
128 064 032 016 008 004 002 001
1 0 1 0 0 1 1 0
Для перевода даного двоичного числа в де-
сятичное надо сложить числа находящиеся
над установлеными битами, то есть над
единицами (128+32+4+2=166). В результате
данная комбинация битов определяет деся-
тичное число 166.
Двоичная арифметика
===================
Микропроцессор выполняет арифметические
действия только в двоичном формате. По-
этому программируя на ассемблере, необхо-
димо знать двоичный формат и двоичное
сложение.
0 + 0 = 0
1 + 0 = 1
1 + 1 = 10
1 + 1 + 1 = 11
Обратите внимание на перенос единичного
бита в последних двух операциях. Теперь
давайте сложим числа 65 и 42:
01000001 65
00101010 42
--------- ----
01101011 107
Проверьте, что двоичная сумма 01101011
действительно равна десятичной 107. Да-
вайте рассмотрим другой пример:
00111100 60
00110101 53
--------- ----
........ 113
Попробуйте подсчитать сами, и сравните
ответ.
Отрицательные числа
===================
Отрицательные числа могут быть только в
диапазоне от -127 до 127, так как послед-
ний 7 бит используется в качестве бита
знака. Таким образом, для представления
двоичного отрицательного числа необходимо
инвертировать все его биты и прибавить к
нему 1. Рассмотрим пример:
число 65 : 01000001
инверсия битов : 10111110
прибавляем 1 : 10111111 (равно -65)
Если сложить весовые значения единиц чис-
ла 10111111, то 65 не получится. Факти-
чески двоичное число считается отрица-
тельным, если его старший бит равен 1.
Для представления абсолютного значения
отрицательного двоичного числа просто
повторяют предыдущие операции - инверсия
битов и плюс 1. Для достоверности давайте
сложим -65 и 65. В результате должен по-
лучиться 0:
Е01000001 ( 65)
+ Е10111111 (-65)
---------- ------
Е00000000 ( 0)
Все восемь бит имеют нулевое значение.
Перенос единичного бита влево потерян.
Однако если был перенос в знаковый разряд
и из знаковой сетки, то результат являет-
ся корректным.
Двоичное вычитание выполняется просто:
инвертируется знак вычитаемого и склады-
вается два числа. Вычтем, например, 42 из
65. Двоичное представление числа 42 - это
00101010, и его двоичное дополнение
11010110:
01000001 (65)
+ +
11010110 (-42)
---------- ------
00010111 ( 23)
Результат 23 является корректным. В рас-
смотреном примере произошел перенос в
знаковый разряд и из разрядной сетки.
Шестнадцатиричное
представление
(клоунов)
=========
Эта система счисления включяет в себя
"цифры" от 0 до F и так как этих цифр 16,
она называется "шестнадцатиричным пред-
ставлением". Специалисты разработали этот
метод представления двоичных данных, по
которому каждый байт делится пополам и
каждые пол-байта выражаются соответствую-
щим знаком. Так как для некоторых чисел
требуется две цифры, они расширили систе-
му счисления так, чтобы 10=A, 11=В, 12=С,
13=D, 14=Е, 15=F. Ниже в таблице приведе-
ны двоичные, десятичные и шестнадцатирич-
ные значения чисел от 0 до 15:
двоич. дес. шест.
0000 0 0
0001 1 1
0010 2 2
0011 3 3
0100 4 4
0101 5 5
0110 6 6
0111 7 7
1000 8 8
1001 9 9
1010 10 A
1011 11 В
1100 12 С
1101 13 D
1110 14 Е
1111 15 F
Пример:
число 65 -> 0100 0001 -> 4 1
---- ---- - -
Если немного поработать с этим форматом,
то можно быстро привыкнуть к нему. Рас-
смотрим несколько простых примеров шест-
надцатиричной арифметики. Следует пом-
нить, что после шестнадцатиричного #0F
идёт шестнадцатиричное #10, что равно де-
сятичному 16:
6 5 F F 10 FF
4 8 1 F 10 1
- - -- -- -- --
A D 10 1Е 20 100
Для различия десятичной формы от шестнад-
цатиричной надо ставить значёк # (#С8).
Послесловие
===========
Если Вы хоть что-то поняли из этой главы,
то это прогресс, если Вы что-то не допо-
няли, то перечитайте все с начала. Ну, а
если Вы ни хрена не поняли, то учите луч-
ше BASIC :-)
Other articles: