- 締切済み
unixのbcコマンドについて
unixのbcコマンドについて質問です。 (実際はwindowsで移植版を使っています http://okwave.jp/qa/q8660287.html で教えて頂いた物です) 以下のように、頭に0があっても無視されてしまうのですが、これを正しく出力するにはどうしたらいいでしょうか。 bcプロンプトで ibase=16;FF で実行すると 255 同じく0000FFでも 255 これを0000255のように出力したいです。 よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- notnot
- ベストアンサー率47% (4901/10362)
回答No.1
>頭に0があっても無視されてしまうのですが、これを正しく出力するにはどうしたらいいでしょうか。 数字の頭に0があっても無視するのが正しい数学ですが? 上位にゼロを埋めて、指定桁で表示したいと言うことですかね?関数を定義して処理するしか無いと思います。 define p(x,n){ for(;n>length(x);n--) print 0 return x } p(255,7) で、どうでしょうか?
補足
いろいろやってみましたがlengthは値を10進数表現したときの桁数しか返さないみたいですね。 bc単体での実現方法を探るより、bcの出力に対して処理するようなバッチを考えたほうが早いような気がしてきました。 正しい云々は説明不足でしたが、本題から外れますのでご容赦ください。詳しくは質問内リンク先を見れば想像つくかと思います。