системы счисления.
Перевод из 10-ой с.с. Python.
Подготовила учитель информатики
МАОУ гимназии №5
г. Новороссийск
Кувватова Ольга Александровна
Аналитический перевод числа и его описание
Переводим целую часть 85610 в 6-ую систему последовательным делением на 6:
ПОКА наше значение не станет равно 0 выполняем действия
Для перевода необходимо делить число 10-ой системы счисления на основание той системы счисления в которую переводим, при этом целочисленные остатки полученные от деления будут составлять наше новое число в системе счисления в которую переводим, за основу получения остатка от нашего числа удобно взять целочисленное деление %.
Для получения каждого последующего остатка необходимо получить целый результат от деления нашего числа на основание системы счисления в которую переводим, удобно использовать деление нацело //.
85610 = 35446
856%6 = 4
856//6 = 142
142%6 = 4142//6 = 23
23%6 = 523//6 = 3
3%6 = 33//6 = 0
Программирование этих действий с помощью цикла while
При переводе необходимо узнавать остатки от деления на основание той системы счисления в которую переводим, которые являются цифрами нашего числа в данной системе счисления с помощью арифметической операции:
с=a%4
Для получения следующих остатков (которые являются цифрами числа в новой системе счисления) необходимо делить уже не само число, а следующий целочисленный результат от деления на основание системы в которую переводим, для этого число нужно заменить через операцию //:
a=a//4
Два этих действия выполняются до тех пор ПОКА основной результат не станет равен 0, поэтому удобно для перевода использовать цикл while, который будет работать до тех пор пока наше основное значение больше 0, и в нем будет каждую итерацию, узнавать новый остаток от числа (это цифра числа в новой системе счисления) и получать следующий результат для получения следующего остатка.
Построение Числа в новой системе счисления
Если каждый остаток выводить внутри итерации, то мы «увидим» наше число начиная с последней цифры, но при этом эти значения нигде сохраняются.
Построение Числа в новой системе счисления
При сохранении остатков в строку (при чем каждый последующий остаток становится левее предыдущего), будет сформирована строка str, в виде цифр числа в новой системе счисления с правильным порядком цифр (НО! В системах счисления выше 10-ой системы, могут встречаться цифры 10, 11, 12 и т. д. тогда число будет сформировано неверно).
В данном случае цифр 1 в сформированном числе девять штук, но система счисления 19-ая и цифры 10 11 12…18 тоже имеют 1 в своей записи и могли быть получены в остатках при переводе.
Построение Числа в новой системе счисления
При сохранении остатков в строку (при чем каждый последующий остаток становится левее предыдущего) , будет сформирована строка str, в виде цифр числа в новой системе счисления с правильным порядком цифр
При сохранении остатков в список, будет сформирован список с числовыми (int) данными в новой системе счисления с не правильным порядком цифр. Срез [::-1] с шагом -1 сформирует его верно.
Построение Числа в новой системе счисления
В подобной ситуации удобно использовать списки. При сохранении остатков в список, будет сформирован список с числовыми (int) данными в новой системе счисления с неправильным порядком цифр, который можно изменить используя срез [::-1] с шагом -1, и при этом каждая цифра будет храниться под своей индексацией.
И теперь точно видно расположение каждой цифры и её числовое значение, в таком случае цифр 1 на самом деле две, а не девять.
перевод числа из 10-ой системы счисления с помощью функций
С помощью функций
bin ()
oct ()
hex ()
можно перевести число int из 10-ой системы в 2-ый, 8-ый, 16-ый тип системы счисления в строковом виде (ВНИМАНИЕ) с префиксом 0b, 0o, 0x который является показателем в какой системе счисления подразумевается данное числовое значение в строке, но так как префикс не является составом данного числа, то его можно срезать [2:]
Решение задач.
Подготовила учитель информатики
МАОУ гимназии №5
г. Новороссийск
Кувватова Ольга Александровна
Задача 1
Значение выражения 3431515 – 6∙491520 + 5∙491510 – 3∙71530 – 1550 записали в системе счисления с основанием 7. Определите количество значащих нулей в этой записи.
Решение Задача 1
Значение выражения 3431515 – 6∙491520 + 5∙491510 – 3∙71530 – 1550 записали в системе счисления с основанием 7. Определите количество значащих нулей в этой записи.
При решении данной задачи можно использовать как строку, так и список для создания числа в 7-ой системе счисления, так как каждая цифра будет записана как один символ и займет ровно одно место разряда в числе.
Задача 2
Значение выражения 3431515 – 6∙491520 + 5∙491510 – 3∙71530 – 1550 записали в системе счисления с основанием 12. Определите количество цифр 1 в этой записи.
Решение Задача 2
Значение выражения 3431515 – 6∙491520 + 5∙491510 – 3∙71530 – 1550 записали в системе счисления с основанием 12. Определите количество цифр 1 в этой записи.
При решении данной задачи использовать строку для сохранения числа в 12-ой системе счисления нельзя, так как цифра 1, содержится в цифрах 10 и 11 в данной системе счисления. Список для создания числа в 12-ой системе счисления, будет оптимальным вариантом так как каждая цифра будет записана как один символ и займет ровно одно место разряда в числе.
Задача 3
При каком наименьшем натуральном значении переменной x двоичная запись выражения 42015 + 2x – 22015 + 15 содержит ровно 500 единиц?
Решение Задача 3
При каком наименьшем натуральном значении переменной x двоичная запись выражения 42015 + 2x – 22015 + 15 содержит ровно 500 единиц?
Степень x неизвестное натуральное число которое при подстановке в выражение будет давать значения в двоичной системе счисления с различным количеством единиц. Для перебора x используем цикл for, а для перевода в 2-ую систему счисления воспользуемся функцией bin(), которая в каждой итерации будет переводить значение выражения в строковый str тип данных двоичной системы счисления, если количество строковых 1 при подсчете (count) будет 500 (True), то выведем этот x (значение подходящей степени).
Задача 4
Значение выражения 52026 + 7·51013 + 107 – X записали в системе счисления с основанием 6. Определите минимальное натуральное значение X, при котором цифр 5 в такой записи на 28 больше, чем цифр 0.
Решение Задача 4
Значение выражения 52026 + 7·51013 + 107 – X записали в системе счисления с основанием 6. Определите минимальное натуральное значение X, при котором цифр 5 в такой записи на 28 больше, чем цифр 0.
Задача похожа на предыдущую, но перевод осуществить можно только циклом while. В данном случае нужно сравнить количество цифр 5 и цифр 0.
Задача 5
Значение арифметического выражения 6260 + 6160 + 660 – х, где х – целое положительное число, не превышающее 2030, записали в 6-ричной системе счисления. Определите наименьшее значение х, при котором количество нулей в 6-ричной записи числа, являющегося значением данного арифметического выражения, равно 202. В ответе запишите число в десятичной системе счисления.
Решение Задача 5
Значение арифметического выражения 6260 + 6160 + 660 – х, где х – целое положительное число, не превышающее 2030, записали в 6-ричной системе счисления. Определите наименьшее значение х, при котором количество нулей в 6-ричной записи числа, являющегося значением данного арифметического выражения, равно 202. В ответе запишите число в десятичной системе счисления.
Задачи для самопроверки.
Подготовила учитель информатики
МАОУ гимназии №5
г. Новороссийск
Кувватова Ольга Александровна
Условия
Значение арифметического выражения: 64115 + 8305 – 512 записали в системе счисления с основанием 8. Сколько цифр «7» в этой записи?
При каком наименьшем натуральном значении переменной x двоичная запись выражения 41014 – 2x + 12 содержит ровно 2000 нулей?
Значение выражения 277 – 311 + 36 – x записали в троичной системе счисления, при этом сумма цифр в записи оказалась равной 22. При каком наименьшем натуральном x это возможно?
Значение арифметического выражения 5100 – х, где х – целое положительное число, не превышающее 7050, записали в системе счисления с основанием 5. Определите наибольшее значение х, при котором в пятеричной записи числа, являющегося значением данного арифметического выражения, содержится ровно три нуля. В ответе запишите число в десятичной системе счисления.
Ответы
1. Значение арифметического выражения: 64115 + 8305 – 512 записали в системе счисления с основанием 8. Сколько цифр «7» в этой записи?
227
2. При каком наименьшем натуральном значении переменной x двоичная запись выражения 41014 – 2x + 12 содержит ровно 2000 нулей?
2002
3. Значение выражения 277 – 311 + 36 – x записали в троичной системе счисления, при этом сумма цифр в записи оказалась равной 22. При каком наименьшем натуральном x это возможно?
6
4. Значение арифметического выражения 5100 – х, где х – целое положительное число, не превышающее 7050, записали в системе счисления с основанием 5. Определите наибольшее значение х, при котором в пятеричной записи числа, являющегося значением данного арифметического выражения, содержится ровно три нуля. В ответе запишите число в десятичной системе счисления.
7000
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.