Преобразование чисел в указанную систему счисления


Всех приветствую!

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


Десятичная Шестнадцатиричная Двоичная четырех разрядная
0 0 0000
1 1 0001
2 2 0010
3 3 0011
4 4 0100
5 5 0101
6 6 0110
7 7 0111
8 8 1000
9 9 1001
10 A 1010
11 B 1011
12 C 1100
13 D 1101
14 E 1110
15 F 1111

Десятичная система счисления


Вначале разберем перевод из десятичной в шестнадцатиричную и двоичную. Чтобы перевести в двоичную нужно делить число на основание системы счисления и остаток от деления записывать в результат в обратном порядке. Так как у нас двоичная система счисления числа от 0 до 1, поэтому делить нужно на 2.

Имея число 117, нужно выполнить несколько шагов:

117 / 2 = 1
58 / 2 = 0
29 / 2 = 1
14 / 2 = 0
7 / 2 = 1
3 / 2 = 1
1 / 2 = 1


Записываем в результат в обратном порядке(снизу вверх в данном случае) и получаем число: 1110101.

Преобразование десятичного числа в шестнадцатиричное число. Тут принцип такой же, нужно поделить десятичное число на основание системы счисления, остаток от деления записывать в результат в обратном порядке, шестнадцатиричная система счисления это цифры от 0 до 9 и латинские буквы - ABCDEF, в итоге имеем 16 символов.

Преобразуем например число 1024:

1024 / 16 = 0
64 / 16 = 0
4 / 16 = 4

Итого получаем число: 400 в шестнадцатиричной системе счисления.

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


Перевод из двоичной в десятичную. Нам нужно каждый бит умножить на основание системы счисления и возвести в степень которая будет соответствовать позиции цифры справа налево и отнять 1, далее складывать со следующей преобразованной цифрой двоичного числа. Например у нас первая цифра у числа 10101111 это 1, позиция у неё справа налево 8-я - 1 = 7-я.
Поэтому запись будет такая: 1 * 2 ^ (8-1)

Имеем двоичное число 10101111, преобразовываем:

1 * 2 ^ 7 = 128
0 * 2 ^ 6 = 0
1 * 2 ^ 5 = 32
0 * 2 ^ 4 = 0
1 * 2 ^ 3 = 8
1 * 2 ^ 2 = 4
1 * 2 ^ 1 = 2
0 * 2 ^ 0 = 0

128 + 0 + 32  + 0 + 8 + 4 + 2 + 0 = 174, нули можно в процессе сложения отбрасывать.

Преобразование из двоичной в шестнадцатиричную.
Тут все просто, каждое четырех разрядное двоичное число соответствует одной шестнадцатиричной цифре.
Например четырех разрядное двоичное число 1111 в десятичной это - 15 в шестнадцатиричной это - F.
Преобразование и запись ведется строго справа налево.

Есть число 10101111:

1111 = F
1010 = A

Поэтому двоичное число 10101111 после преобразования в шестнадцатиричную: AF.


Шестнадцатиричная система счисления


Можно начать с простого преобразования в двоичную систему, если вспомнить, то одна шестнадцаиричная цифра соответствует четырех разрядному двоичному числу.

Дано шестнадцатиричное число FAE:

F = 1111
A = 1010
E = 1110

Итого получилось: 111110101110, все очень просто.

Из шестнадцатиричной в десятичную перевод, по уже знакомому принципу, умножаем на систему счисления и возводим в степень позиции цифры справа налево минус 1, при этом каждая цифра должна быть в десятичной системе счисления во время мат. операции.

Есть шестнадцатиричное число A10C:

10 * 16 ^ 3 = 40960
1 * 16 ^ 2 = 256
0 * 16 ^ 1 = 0
12 * 16 ^ 0 = 12

Считаем результат суммирования - 40960 + 256 + 0 + 12 = 41228

Комментарии

Популярные сообщения из этого блога

Настройка переменных среды для работы с компилятором cl из FAR, cmd