Перевод числа в другую систему счисления

586 просмотра
0
0 Комментариев

Понадобилось перевести адреса IDE контроллера в десятичную систему счисления.

Пытался сделать это на Bash и на Python.
На Python хотел написать скрипт, который просто выводит на экран десятичную форму 16-ричного числа:

import sys
print int(sys.argv[1], '16')

Но на вход подается строка, которую никак не перевести в int, если она в 16-ричной записи.

Как это обойти?
Какую языковую конструкцию на Bash’е можно использовать для решения этой задачи?


Добавить комментарий

1 Ответы

Python Опубликовано 12.12.2018
0

Ваш скрипт на Python не переводит, потому что фнукция int принимает вторым аргументом целое число. Вы можете переписать его следующим образом:

import sys
print(int(sys.argv[1], 16))
#         Нет кавычек  ^^

Вывод:

$ python3 ./main.py 0xdeadbeef
3735928559

Вариант на Bash:

#!/usr/bin/env bash
 
echo $((16#$1))

Аналогичный вопрос на SO: Hexadecimal To Decimal in Shell Script

Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up