• ベストアンサー

8進数文字列を10進数の数値にする方法

文字列の数値を10進数に変換したいのですが、 頭に0が付くと8進数扱いでエラーになります。 簡単に変換する方法はありますか? my $a = "09"; my $b = int($a); <-- エラー また、8進数は頭に0ですが 2進数はどんな表記方法でしょうか?

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

my $b = 0 + $a; でいいです。 2進数は、0b1001 のように表記します

その他の回答 (3)

回答No.4

Perl 5.8.6 ではエラーが出ません。 Perl のバージョンと、どういうエラーが出るのかを捕捉して下さい。

  • SE-1
  • ベストアンサー率57% (26/45)
回答No.3

回答ではないんですが・・・ BLUEPIXY さんと投稿がかぶってしまったようです(1980324 も)。そして、どちらも私の完敗のようです (++;)。

  • SE-1
  • ベストアンサー率57% (26/45)
回答No.2

#タイトル通りなら、リンク先の「数字変換処理」ですが・・9が出てくるということは、09を9にしたいということのようですね。 #もしそうなら頭の0を抜けばいいと思います↓。 my $a = "09"; $a=~s/^0(\d+)/$1/; my $b = int($a); print "$b\n";

参考URL:
http://ash.jp/perl/tips_perl01.htm

関連するQ&A