Я пытаюсь сделать программу, которая преобразовывает десятичные числа или текст в двоичные числа в 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;
}
Существует несколько методов преобразования из десятичного числа в двоичное, перечисленных в perlfaq4 ( Как мне преобразовать между числовыми представлениями / основаниями / основаниями? ).
sprintf - хороший выбор.
$ decimal / 2;
не влияет на $ decimal
Вы, вероятно, захотите $ decimal / = 2;
или, если хотите быть крутым, тогда $ decimal >> = 1;
Но на самом деле, вы, вероятно, просто захотите:
printf "% b \ n", $ decimal;
У меня есть эти псевдонимы в моем .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 )'"