среда, 17 декабря 2014 г.

Двоичная и шестнадцатеричная системы счисления

МК - это автомат для работы с информацией, которая представлена числами. В повседневной жизни мы привыкли к числам в десятичной системе счисления (decimal, dec), и принимаем это как что-то само собой разумеющееся, не задумываясь.

Однако на привычные числа можно посмотреть другим взглядом, представив их как сумму единиц, десятков, сотен, тысяч и т.д. Например, 322 = 3*100+2*10+2*1. Т.е. в числе 322 содержатся три сотни, два десятка и две единицы.


Далее можно сказать, что 1 это 10 в степени 0 (10^0), 10 это 10^1, 100 это 10^2, 1000 это 10^3 и так далее. Таким образом 10 - это особое число, которое называется основанием системы счисления.


10 - не является единственным выбором для основания системы счисления. В вычислительной технике широко используются основания 2 (двоичная система счисления, binary, bin) и 16 (шестнадцатеричная система счисления, hexadecimal, hex). 




При разложении числа по основанию 2 используются слагаемые по степеням двойки - 2^0, 2^1, 2^2, 2^3, 2^4, 2^5, 2^6 и т.д.
Или по-другому: 1, 2, 4, 8, 16, 32, 64 и т.д.
Так же, как в десятичной системе, младший (самый маленький) разряд пишется справа, а старшие пишутся левее.


Например: 
7[dec] = 0*8+1*4+1*2+1*1 = 0111[bin]
125[dec] = 1*64+1*32+1*16+1*8+1*4+0*2+1*1 = 1111101[bin]
10110[bin] = 1*16+0*8+1*4+1*2+0*1 = 22[dec]

Числа в двоичной записи занимают довольно много места и не очень удобны для восприятия. Поэтому в программировании чаще используется представление чисел по основанию 16. В таком виде обычно записываются адреса памяти и ее содержимое.




При записи числа в шестнадцатеричной системе счисления используются символы 0-9, A, B, C, D, E, F. При этом А=10[dec], B=11[dec], C=12[dec], D=13[dec], E=14[dec], F=15[dec].
Для обозначения основания 16 используются такие записи (на примере числа 7C[hex]):
0x7C  7Chex  7C16  7Ch  7CH

Информация в простых дешевых МК хранится "кусочками" по 8 бит, один такой кусочек из 8 бит называется байт. Каждый бит - это один двоичный разряд - 0 или 1. Отсюда название 8-разрядный или 8-битный МК. Один байт может содержать число от 0 до 255 (пока не рассматриваем отрицательные числа). Числа больше 255 не помещаются в байт.

Если разделить байт на две части по 4 бита - тетрады, то для записи каждой части в шестнадцатеричной системе счисления потребуется один символ от 0 до F, а для записи всего байта - два символа.

Например:
124[dec] = 7*16+12*1 = 7hex*16 + Chex*1 = 0x7C

Комментариев нет:

Отправить комментарий