Black Crow
#03
27 июня 2000 |
|
Программистам - Теория: Биты и байты.
БИТЫ И БАЙТЫ (С) 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 :-)
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября