?

Log in

No account? Create an account
Русь Великая

lsvsx


Всё совершенно иначе!

Истина где-то посередине. Так давайте подгребать к ней не теряя достоинства.


Previous Entry Share Next Entry
Двоичная, восьмеричная и шестнадцатиричная системы счисления
Русь Великая
lsvsx

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

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


Основы работы компьютера начинаются с двоичных чисел и логических операций. Все люди надеются, что специалист, который работает с оборудованием, знает, как оно действует. Однако, это далеко не всегда так. В итоге специалист решает проблемы методом высоконаучного тыка пальцем в одно место. Результат соответствующий.

Результат высоконаучного тыка. Кадр из фильма "Идиократия"

Результат высоконаучного тыка. Кадр из фильма «Идиократия»

Поэтому давайте не будем роптать и тыкать пальцем в это самое, лучше давайте «добьём» эту тему и разберёмся с числами, чтобы затем разобраться с логикой и перейти непосредственно к вопросам разработки реальных сайтов. Более того, освоив системы счисления и логические операции над числами, вы сможете в дальнейшем изучать языки программирования, чтобы разрабатывать пользовательские приложения для дома или офиса.

И хотя все числа в компьютере являются двоичными, некоторые программы используют запись в восьмеричном и шестнадцатиричном виде, чтобы сделать её более компактной. Перевод чисел между двоичной, восьмеричной и шестнадцатиричной системами осуществляется намного проще, чем с десятичной. Браузеры и многие скриптовые языки осуществляют этот перевод на лету.

Вспоминая прошлую статью, вы наверное уже сможете ответить своими словами на вопрос, что такое основание системы счисления. Так вот, системы счисления, которые мы будем сейчас изучать, различаются только лишь по основанию. То есть, грубо говоря, если «десяткой» для десятичной системы счисления является число десять, то для двоичной это будет два, для восьмеричной — восемь, а для шестнадцатиричной — шестнадцать.





«Эй, что за фигню несёт этот парень!»




Ну вот смотрите. В десятичной системе счисления есть цифры 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, а потом идёт 10, то есть уже двухразрядное число, где старший разряд имеет вес 10 в первой степени.

Точно так же в восьмеричной системе счисления, там есть цифры 0, 1, 2, 3, 4, 5, 6, 7 — всего восемь цифр, а дальше идёт 10. Основанием — «десяткой» — для восьмеричной системы является восемь, потому-то она и восьмеричная.

Для двоичной — тут вообще всё проще, потому-то она и используется в машинных вычислениях. Для машин особо сложные принципы работы губительны. Итак, в двоичной системе есть всего две цифры — 0 и 1. А дальше идёт что? Конечно, 10. Такие дела!

С шестнадцатиричной системой всё несколько веселее, потому что привычных цифр, которые используются в десятичной, восьмеричной и двоичной системах, всего 10 (от 0 до 9). Те цифры, которые соответствуют значениям от десяти до пятнадцати, принято обозначать латинскими буквами. То есть, в 16-чной системе принято использовать следующие «цифры»: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Ну а дальше что, сами уже, наверное угадаете (10, если чё  ;-) ).

Числа, записанные в разных системах счисления, принято различать по нижнему индексу, например:

101012 — число, записанное в двоичной системе,

4518 — в восьмеричной,

34210 — в десятичной,

1F8D16 — в шестнадцатиричной.

Притом, числа ноль и один будут во всех этих системах одинаковы, то есть 02 = 08 = 010 = 016 и 12 = 18 = 110 = 116.

Причём, уже число два будет: 102 = 28 = 210 = 216. Число три: 112 = 38 = 310 = 316.

Число восемь: 10002 = 108 = 810 = 816. Число девять: 10012 = 118 = 910 = 916. Число десять: 10102 = 128 = 1010 = A16.

Число пятнадцать: 11112 = 178 = 1510 = F16. Число шестнадцать: 100002 = 208 = 1610 = 1016. Число семнадцать: 100012 = 218 = 1710 = 1116.

И так далее. Чтобы было ещё более понятно, как они получаются, сведём все маленькие числа в разных системах счисления в одну таблицу:

Двоичное Восьмеричное Десятичное Шестнадцатиричное
0 0 0 0
1 1 1 1
10 2 2 2
11 3 3 3
100 4 4 4
101 5 5 5
110 6 6 6
111 7 7 7
1000 10 8 8
1001 11 9 9
1010 12 10 A
1011 13 11 B
1100 14 12 C
1101 15 13 D
1110 16 14 E
1111 17 15 F
10000 20 16 10
10001 21 17 11
10010 22 18 12
10011 23 19 13
10100 24 20 14
10101 25 21 15
10110 26 22 16
10111 27 23 17
11000 30 24 18
11001 31 25 19
11010 32 26 1A
11011 33 27 1B
11100 34 28 1C
11101 35 29 1D
11110 36 30 1E
11111 37 31 1F
100000 40 32 20

Теперь, я думаю, все, кто ещё не понимал, начнут догадываться, как образуются числа в разных системах счисления и как там ведётся счёт. Для удобства столбец с десятичной системой счисления выделен красным. Там Вы увидите запись числа в наиболее привычном виде.

Способы перевода из одной системы счисления в другую

Попозже допишу, но статья должна быть доступна уже сейчас, поэтому продолжение следует… Автор: Илья Бутусов