Задача на программирование
Напишите программу, которая переведет десятичное число, которое дается на вход вашей программе, в 2, 8 и 16 системы счисления. В качестве ответа выведите представление числа в этих системах счисления.
Sample Input 1:
17
Sample Output 1:
0b10001
0o21
0x11
Sample Input 2:
123
Sample Output 2:
0b1111011
0o173
0x7b
Sample Input 3:
0
Sample Output 3:
0b0
0o0
0x0
Python
Нужен готовый код Python
n = int(input())
print(bin(n))
print(oct(n))
print(hex(n))
n = int(input())
print(bin(n), oct(n), hex(n), sep='\n')
Афанасий Великий
Вы можете использовать встроенные функции Python: bin(), oct(), и hex(), чтобы выполнить необходимые преобразования систем счисления. Вот простой пример:
def convert_num_systems():
num = int(input("Введите число: "))
# Переводим в двоичную систему
binary = bin(num)
print(binary)
# Переводим в восьмеричную систему
octal = oct(num)
print(octal)
# Переводим в шестнадцатеричную систему
hexa = hex(num)
print(hexa)
convert_num_systems()
Перевод десятичных чисел в hex делал когда-то, дарю. Там чуть посложнее чем в двоичную и восьмеричную, посколько в результате есть не только цифры, но и латинские буквы. А вообще в Питоне для всех трех случаев есть встроенные функции
letters = [chr(i) for i in range(ord('a'), ord('f') + 1)]
nums = [i for i in range(10, 16)]
def int_part(n):
global letters, nums
result, final = [], []
if not n:
return '0x0'
else:
while n > 0:
result += [n % 16]
n = n // 16
for i in result:
if i in nums:
final += letters[nums.index(i)]
else:
final += str(i)
return ' '.join(['0x' + ''.join((final[::-1]))])
def float_part(f):
global letters, nums
result, final, i = [], [], 0
while f - int(f) or i < 11:
f *= 16
result += [int(f)]
f = f - int(f)
i += 1
for i in result:
if i in nums:
final += letters[nums.index(i)]
else:
final += str(i)
return ''.join(final)
try:
decimal = input('DEC ')
if '.' in decimal and decimal[0] != '.' and decimal[-1] != '.':
decimal = float(decimal)
else:
decimal = int(decimal)
if isinstance(decimal, int):
print('HEX', int_part(decimal))
if isinstance(decimal, float):
float_p = decimal - int(decimal)
int_p = int(decimal)
print('HEX', int_part(int_p) + '.' + float_part(float_p))
except ValueError:
print('Wrong input')
# 6783.05493
# 1A7F.0E0FE47991B
Похожие вопросы
- Где ошибка в коде? (Python)
- Переделайте код python
- Помогите исправить ошибку в коде. Python
- Как ускорить код Python?
- Ошибка в коде python discord.py
- Объясните этот адский код. python
- Объясните код python пожалуйста
- Для чего нужны аннотации в python?
- Задача 10. Игра «Компьютер угадывает число» язык кода Python помогите пожалуйста
- Является ли грамотным такой код python?