• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:10進数→2進数の出力について)

10進数から2進数への変換方法

このQ&Aのポイント
  • コマンドライン引数から10進数の値を入力して2進数に変換して出力する方法について説明します。
  • 現在のコードでは変換に失敗している問題があります。
  • WindowsXPの動作環境とActiveperl-5.12.4.1205を使用しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • NaKIT
  • ベストアンサー率62% (15/24)
回答No.2

桁あふれをおこしているようですから、自力で書き換えるしかないかと思います。 サンプルの数字は、16進数では 0x8000_0000_0000_0000 ですから、 0 の数は 63、1を含めて 64 桁ですね。 #! perl %~f1 9223372036854775808 our $decimal = shift; print $decimal, "\n"; my $dec = $decimal; my @bin = (); while ($dec > 0) { unshift (@bin, sprintf("%d",($dec % 2))); $dec = int($dec / 2); } print "0b", join('', @bin), "\n";

その他の回答 (2)

  • ryu_chan
  • ベストアンサー率37% (69/186)
回答No.3

No.1さんがおっしゃるようにbigintでいいんじゃないでしょうか? use bigint; my $n = 0 + $ARGV[0]; print substr $n->as_bin, 2;

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

bigint なり Math::BigInt なりを使う?

関連するQ&A

専門家に質問してみよう