Навіщо програмістам та веб-дизайренам системи числення?

Поняття про системи числення

Комп’ютер зберігає інформацію у пам’яті у вигляді нулів та одиниць, здійснює обчислення в двійкових числах та приймає рішення у двійковій логіці. Корисним є вміння переводити числа з однієї системи числення до іншої, оскільки це корисно при роботі з адресацією пам’яті комп’ютера.

Система числення – спосіб запису числа у вигляді зручному для прочитання та виконання арифметичних операцій.

Системи числення бувають позиційні та непозиційні (наприклад, римська). Далі ми розглядатимемо лише позиційні системи числення.

Підставою (основою) системи числення назвемо кількість цифр, які можуть бути використані як розряд числа. Наприклад, у десятковій системі числення можуть бути використані десять цифр (від 0 до 9).

Для переведення з будь-якої системи числення до десяткової системи використовується формула:

mi – допустимі цифри у системі числення

qiоснова системи числення

i – розряд числа

n – загальна кількість розрядів у числі

3 2 1 0

8 5 1 7 = 8*103 + 5*102 +1*101 +7*100 =8000 + 500 + 10 + 7

Хоча комп’ютер «знає» тільки двійкову систему числення, часто з метою зменшення кількості записуваних на папері або знаків, що вводяться з клавіатури комп’ютера, буває зручніше користуватися вісімковими або шістнадцятковими числами, тим більше, що процедура взаємного переведення чисел з кожної з цих систем у двійкову дуже проста – набагато простіше перекладів між будь-якими іншими.

З практичної точки зору цікава процедура взаємного перетворення двійкових, вісімкових і шістнадцяткових чисел. Для цього скористаємось таблицею чисел від 0 до 17 (у десятковій системі числення), представлених в інших системах числення.

Десякова система численняЕквівалент у системі численняДесяткова система численняЕквівалент у системі числення
q=2q=8q=16q=2q=8q=16
000091001119
111110101012A
2102211101113B
3113312110014C
41004413110115D
51015514111016E
61106615111117F
71117716100002010
810008817100012111

Переклад з 10 системи числення до 2 системи числення.

Алгоритм №1

1) Розділити число на 2.

2) Зафіксувати залишок (0 чи 1).

3) Якщо частка не дорівнює 1, то виконати пункт 1.

4) Якщо частка дорівнює 1, то записати всі отримані залишки, починаючи з частки.

Наприклад:

1) Перевести 6 <10> у двійкову систему числення:
6 \2
6 3 \2
0 2 1
1
6<10>=110<2>

2) Перевести 9<10>, 11<10> у двійкову систему числення:
9<10>=1001<2> 11<10>=1011<2>

3) Уявити десяткове число 729 у другій системі числення.
729 \2
728 364 \2
  1 364 182 2
    0 182 91 \2
      0 90 45 \2
        1 44 22 \2
            1 22 11 \2
                0 10 5 \2
                  1 4 2 \2
                      1 2 1
                              0
729<10>=1011011001<2>

Переклад з 2 системи числення до 10 системи числення.

Для переведення з <2> у <10> систему числення скористаємося формулою (1).

n 0 1 2345678910
2n12481632641282565121024

Наприклад.

Перевести 1011011001<2> в десяткову систему числення.
1011011001 = 1 * 29 +0 * 28 +1 * 27 +1 * 26 +0 * 25 +1 * 24 +1 * 23 +0 * 22 + 0 * 21 +1 * 20 = 512 + 128 + 64 + 16 + 8 + 1 = 729 <10>

Переклад із десяткової системи числення до шістнадцяткової.

Алгоритм аналогічний алгоритму 1, тільки ділити необхідно число 16.

n12345678910
16xn163248648096112128144160

Алгоритм №2

1) Розділити число на 16

2) Зафіксувати залишок від 0 до 15.

3) Якщо частка більше 15, то виконати пункт 1.

4) Якщо частка менше 16, то записати всі отримані залишки, починаючи з приватного.

Наприклад.

1) Перекласти 15197<10> на <16>.

15197 \ 16
144     949 \ 16
  79     80     59 \16
  64     149    48 3
 157     144    11
 144     5       B
  13
  D
Відповідь: 15197 <10> = 3B5D <16>

2) Перекласти 640<10> на <16>.

640 \ 16
64 40 \ 16
00 32 2
8
Відповідь: 640 <10> = 280 <16>

3) Перекласти 32128<10> на <16>.

32128 \16
32 2008 \16
0128 16 125 \16
128 40 112 7
0 32 13
88 D
80
8
Відповідь: 32128 <10> = 7D80 <16>

Переклад з 16 системи числення до 10

n 0 1 2 345
16n 1162564096655361048576

Наприклад. 3B5D<16> → <10>
3*163 + B*162 +5*161 + D*160 = 3*4096 + 11*256 + 5*16 + + 13*1 = 12288 + 2816 + 80 + 13 = 15197

Переклад з 16 системи числення до 2 системи числення

Кожна цифра <16> числа представляється як 4 розрядів <2>-системи
числення.
Наприклад:

Перекласти FА92ВСЕ<16> в <2>.
F А 9 2 В C Е
1111∙1010∙1001∙0010∙1011∙1100∙1110

Переклад з 2 системи числення до 16 системи числення

Кожні 4 цифри <2> числа надаються як цифра <16> числа.
Наприклад. Перекласти 1111∙1010∙1001∙0010∙1011∙1100∙1110<2> до <16>.
1111∙1010∙1001∙0010∙1011∙1100∙1110
F А 9 2 В C Е
1) Перекласти 1111∙1010∙1001<2> у <16>.
1111∙1010∙1001∙
F А 9
2) Перекласти 10∙1011∙1100∙1110<2> у <16>.
0010∙1011∙1100∙1110
2 В С E

Поставте своє питання

Не знайшли відповіді
на своє запитання?
Задайте його самі!