Урок 32. Перевод чисел между системами счисления
При программировании мы часто сталкиваемся с необходимостью перевода чисел между системами счисления, по основанию: 2, 4, 8, 16 и 10.
Основание системы счисления указывает какое количество цифр используется в этой системе для написания чисел:
- Привычная нам система счисления по основанию 10 (десятичная система счисления) использует 10 цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. После 9 идёт не цифра, а число 10, состоящее из двух цифр: 1 и 0. Таким образом, мы записываем любые числа, используя указанные цифры в определённой последовательности.
- Система счисления по основанию 2 (двоичная система счисления) использует 2 цифры: 0, 1.
- Система счисления по основанию 4 (четверичная система счисления) использует 4 цифры: 0, 1, 2, 3.
- Система счисления по основанию 8 (восьмеричная система счисления) использует 8 цифр: 0, 1, 2, 3, 4, 5, 6, 7.
- Система счисления по основанию 16 (шестнадцатеричная система счисления) использует 16 цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. В данном случае, буквы ABCDEF являются цифрами. Цифра A шестнадцатеричной системы, равна числу 10 десятичной системы, цифра B равна числу 11 десятичной системы, . , цифра F равна числу 15 десятичной системы.
Можно использовать любую систему счисления, например по основанию 12 (счет дюжинами), но наиболее популярными при программировании, являются: десятичная, шестнадцатеричная и двоичная, системы счисления.
Все выше перечисленные системы счисления относятся к позиционным системам. Значение числа зависит не только от того из каких цифр оно состоит, но и в какой последовательности они записаны. Например число 1234 не равно числу 4321.
Методы представления чисел в разных системах счисления:
- двоичная система счисления:
- (10101)2 — математическое представление (число)основание системы
- 0b10101 — представление в скетчах Arduino IDE (число записывается с ведущими символами «0b»).
- B10101 — представление в скетчах Arduino IDE (число до 256 записывается с ведущим символом «B»).
- (10101)8 — математическое представление (число)основание системы
- 010101 — представление в скетчах Arduino IDE (число записывается с ведущим символом «0» ноль).
- (10101)10 — математическое представление (число)основание системы
- 10101 — представление в скетчах Arduino IDE (число записывается как есть без ведущих символов)
- (10101)16 — математическое представление (число)основание системы
- 0x10101 — представление в скетчах Arduino IDE (число записывается с ведущими символами «0x»).
Перевод чисел в десятичную систему счисления:
Для перевода числа из любой системы счисления в десятичную нужно сложить все цифры этого числа, предварительно умножив каждое из них на основание системы счисления, из которой производится перевод, возведя её в степень соответствующую позиции цифры в числе:
Σ(цифра_числа * основание_системы позиция_цифры )
Примеры перевода чисел в десятичную систему счисления:
Перевод чисел из десятичной системы счисления:
Для перевода чисел из десятичной системы счисления в любую другую, необходимо целочисленно делить переводимое число на основание той системы, в которую мы хотим его перевести, до тех пор пока результат целочисленного деления не станет равен 0. Результатом перевода будут цифры остатка от каждого деления, в обратном порядке.
Примеры перевода чисел из десятичной системы счисления:
- (43)10 перевести в двоичную систему счисления:
- 43/2 = 21 и 1 в остатке
- 21/2 = 10 и 1 в остатке
- 10/2 = 5 и 0 в остатке
- 5/2 = 2 и 1 в остатке
- 2/2 = 1 и 0 в остатке
- 1/2 = 0 и 1 в остатке
- результат — цифры остатков в обратном порядке = (101011)2
- 751/8 = 93 и 7 в остатке
- 93/8 = 11 и 5 в остатке
- 11/8 = 1 и 3 в остатке
- 1/8 = 0 и 1 в остатке
- результат — цифры остатков в обратном порядке = (1357)8
- 15305/16 = 956 и 9 в остатке
- 956/16 = 59 и 12 в остатке — соответствует цифре (C)16
- 59/16 = 3 и 11 в остатке — соответствует цифре (B)16
- 3/16 = 0 и 3 в остатке
- результат — цифры остатков в обратном порядке = (3BC9)16
Простой метод перевода:
Легче всего переводить числа через двоичную систему счисления. О том как это сделать рассказано в нашем видеоуроке.
Перевод числа 125 из десятичной системы счисления в семеричную
Для перевода десятичного числа 125 в 7-ую систему счисления, необходимо его последовательно делить на 7 до тех пор, пока остаток не станет меньше чем 7.
— 125 7 119 — 17 7 6 14 2 3 Ответом будет являться обратная последовательность результатов деления:
Другие переводы числа 125:
- Перевод числа 125 из восьмеричной в шестеричную систему
- Как выглядит восьмеричное число 125 в пятеричной системе счисления?
- Какое шестеричное число соответствует десятичному числу 125?
- Как перевести 125 из десятичной в четверичную систему?
- Запиши десятичное число 125 в восьмеричной системе
Перевод чисел в различные системы счисления с решением
Калькулятор позволяет переводить целые и дробные числа из одной системы счисления в другую. Основание системы счисления не может быть меньше 2 и больше 36 (10 цифр и 26 латинских букв всё-таки). Длина чисел не должна превышать 30 символов. Для ввода дробных чисел используйте символ . или , . Чтобы перевести число из одной системы в другую, введите исходное число в первое поле, основание исходной системы счисления во второе и основание системы счисления, в которую нужно перевести число, в третье поле, после чего нажмите кнопку «Получить запись».
Исходное число записано в -ой системе счисления.
Хочу получить запись числа в -ой системе счисления.
Получить запись
- Калькулятор таблицы истинности. СДНФ. СКНФ. Полином Жегалкина
- Калькулятор комплексных чисел
Системы счисления
Системы счисления делятся на два типа: позиционные и не позиционные. Мы пользуемся арабской системой, она является позиционной, а есть ещё римская − она как раз не позиционная. В позиционных системах положение цифры в числе однозначно определяет значение этого числа. Это легко понять, рассмотрев на примере какого-нибудь числа.
Пример 1. Возьмём число 5921 в десятичной системе счисления. Пронумеруем число справа налево начиная с нуля:
Число: 5 9 2 1 Позиция: 3 2 1 0 Число 5921 можно записать в следующем виде: 5921 = 5000+900+20+1 = 5·10 3 +9·10 2 +2·10 1 +1·10 0 . Число 10 является характеристикой, определяющей систему счисления. В качестве степеней взяты значения позиции данного числа.
Пример 2. Рассмотрим вещественное десятичное число 1234.567. Пронумеруем его начиная с нулевой позиции числа от десятичной точки влево и вправо:
Число: 1 2 3 4 5 6 7 Позиция: 3 2 1 0 -1 -2 -3 Число 1234.567 можно записать в следующем виде: 1234.567 = 1000+200+30+4+0.5+0.06+0.007 = 1·10 3 +2·10 2 +3·10 1 +4·10 0 +5·10 -1 +6·10 -2 +7·10 -3 .
Перевод чисел из одной системы счисления в другую
Наиболее простым способом перевода числа с одной системы счисления в другую, является перевод числа сначала в десятичную систему счисления, а затем, полученного результата в требуемую систему счисления.
Перевод чисел из любой системы счисления в десятичную систему счисления
Для перевода числа из любой системы счисления в десятичную достаточно пронумеровать его разряды, начиная с нулевого (разряд слева от десятичной точки) аналогично примерам 1 или 2. Найдём сумму произведений цифр числа на основание системы счисления в степени позиции этой цифры:
1. Перевести число 1001101.11012 в десятичную систему счисления.
Решение: 1001101.11012 = 1·2 6 +0·2 5 +0·2 4 +1·2 3 +1·2 2 +0·2 1 +1·2 0 +1·2 -1 +1·2 -2 +0·2 -3 +1·2 -4 = 64+8++4+1+0.5+0.25+0.0625 = 77.812510
Ответ: 1001101.11012 = 77.8125102. Перевести число E8F.2D16 в десятичную систему счисления.
Решение: E8F.2D16 = 14·16 2 +8·16 1 +15·16 0 +2·16 -1 +13·16 -2 = 3584+128+15+0.125+0.05078125 = 3727.1757812510
Ответ: E8F.2D16 = 3727.1757812510Перевод чисел из десятичной системы счисления в другую систему счисления
Для перевода чисел из десятичной системы счисления в другую систему счисления целую и дробную части числа нужно переводить отдельно.
Перевод целой части числа из десятичной системы счисления в другую систему счисления
Целая часть переводится из десятичной системы счисления в другую систему счисления с помощью последовательного деления целой части числа на основание системы счисления до получения целого остатка, меньшего основания системы счисления. Результатом перевода будет являться запись из остатков, начиная с последнего.
3. Перевести число 27310 в восьмиричную систему счисления.
Решение: 273 / 8 = 34 и остаток 1, 34 / 8 = 4 и остаток 2, 4 меньше 8, поэтому вычисления завершены. Запись из остатков будет иметь следующий вид: 421
Проверка: 4·8 2 +2·8 1 +1·8 0 = 256+16+1 = 273 = 273 , результат совпал. Значит перевод выполнен правильно.
Ответ: 27310 = 4218Рассмотрим перевод правильных десятичных дробей в различные системы счисления.
Перевод дробной части числа из десятичной системы счисления в другую систему счисления
Напомним, правильной десятичной дробью называется вещественное число с нулевой целой частью. Чтобы перевести такое число в систему счисления с основанием N нужно последовательно умножать число на N до тех пор, пока дробная часть не обнулится или же не будет получено требуемое количество разрядов. Если при умножении получается число с целой частью, отличное от нуля, то целая часть дальше не учитывается, так как последовательно заносится в результат.
4. Перевести число 0.12510 в двоичную систему счисления.
Решение: 0.125·2 = 0.25 (0 — целая часть, которая станет первой цифрой результата), 0.25·2 = 0.5 (0 — вторая цифра результата), 0.5·2 = 1.0 (1 — третья цифра результата, а так как дробная часть равна нулю, то перевод завершён).
Ответ: 0.12510 = 0.0012Перевод из десятичной системы счисления в двоичную
Вы делитесь ссылкой на ваш сохраненный расчет. Изменения, внесенные в расчет, будут автоматически доступны по ссылке.
Вы делитесь ссылкой на статичный расчет. При изменении вами расчета, изменения не будут транслироваться по ссылке.
Как перевести
Для того, чтобы преобразовать число из десятичной системы счисления в двоичную, необходимо выполнить следующие действия.
- Делим десятичное число на 2 и записываем остаток от деления.
- Результат деления вновь делим на 2 и опять записываем остаток.
- Повторяем операцию до тех пор пока результат деления не будет равен нулю.
- Запишем полученные остатки в обратном порядке и получим искомое число.
Переведем число 37510 в двоичную систему: