Как я преобразовываю десятичные числа в двоичный файл в Perl?

Я пытаюсь сделать программу, которая преобразовывает десятичные числа или текст в двоичные числа в Perl. Программа просит ввод данных пользователем символа или строки и затем распечатывает результат к консоли. Как я делаю это? Мой код я продолжал работать, ниже, но я, может казаться, не фиксирую его.

print "Enter a number to convert: ";
chomp($decimal = <STDIN>);
print "\nConverting $number to binary...\n";
$remainder = $decimal%2;
while($decimal > 0)
{
    $decimal/2;
    print $remainder;
}
13
задан Peter Mortensen 18 March 2014 в 18:06
поделиться

3 ответа

Существует несколько методов преобразования из десятичного числа в двоичное, перечисленных в perlfaq4 ( Как мне преобразовать между числовыми представлениями / основаниями / основаниями? ).

sprintf - хороший выбор.

8
ответ дан 1 December 2019 в 17:39
поделиться

$ decimal / 2; не влияет на $ decimal

Вы, вероятно, захотите $ decimal / = 2; или, если хотите быть крутым, тогда $ decimal >> = 1;

Но на самом деле, вы, вероятно, просто захотите:

printf "% b \ n", $ decimal;

25
ответ дан 1 December 2019 в 17:39
поделиться

У меня есть эти псевдонимы в моем .bash_profile для быстрого преобразования в командной строке:

# from-decimal
alias d2h="perl -e 'printf qq|%X\n|, int( shift )'"
alias d2o="perl -e 'printf qq|%o\n|, int( shift )'"
alias d2b="perl -e 'printf qq|%b\n|, int( shift )'"
# from-hex
alias h2d="perl -e 'printf qq|%d\n|, hex( shift )'"
alias h2o="perl -e 'printf qq|%o\n|, hex( shift )'"
alias h2b="perl -e 'printf qq|%b\n|, hex( shift )'"
# from-octal
alias o2h="perl -e 'printf qq|%X\n|, oct( shift )'"
alias o2d="perl -e 'printf qq|%d\n|, oct( shift )'"
alias o2b="perl -e 'printf qq|%b\n|, oct( shift )'"
# from-binary
alias b2h="perl -e 'printf qq|%X\n|, oct( q|0b| . shift )'"
alias b2d="perl -e 'printf qq|%d\n|, oct( q|0b| . shift )'"
alias b2o="perl -e 'printf qq|%o\n|, oct( q|0b| . shift )'"
8
ответ дан 1 December 2019 в 17:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: