• 締切済み

unixのbcコマンドについて

unixのbcコマンドについて質問です。 (実際はwindowsで移植版を使っています http://okwave.jp/qa/q8660287.html で教えて頂いた物です) 以下のように、頭に0があっても無視されてしまうのですが、これを正しく出力するにはどうしたらいいでしょうか。 bcプロンプトで ibase=16;FF で実行すると 255 同じく0000FFでも 255 これを0000255のように出力したいです。 よろしくお願いします。

みんなの回答

  • notnot
  • ベストアンサー率47% (4848/10261)
回答No.1

>頭に0があっても無視されてしまうのですが、これを正しく出力するにはどうしたらいいでしょうか。 数字の頭に0があっても無視するのが正しい数学ですが? 上位にゼロを埋めて、指定桁で表示したいと言うことですかね?関数を定義して処理するしか無いと思います。 define p(x,n){ for(;n>length(x);n--) print 0 return x } p(255,7) で、どうでしょうか?

bigcalc4win
質問者

補足

いろいろやってみましたがlengthは値を10進数表現したときの桁数しか返さないみたいですね。 bc単体での実現方法を探るより、bcの出力に対して処理するようなバッチを考えたほうが早いような気がしてきました。 正しい云々は説明不足でしたが、本題から外れますのでご容赦ください。詳しくは質問内リンク先を見れば想像つくかと思います。

関連するQ&A

  • Unixコマンド コマンドを再実行

    Windowsのコマンドプロンプトで、前回行ったコマンドを再実行する際、F3キーを押しますが、それと同様な処理を行なうUnixコマンドを教えて下さい。

  • bcコマンドで分数計算をする方法

    UNIXのbcコマンドで分数計算をしたいのですが、どうすればいいでしょうか。 ■理想 echo "scale=5; 1/2+1/3" を実行すれば、5/6と出力したいです。 ■だめなら… echo "scale=5; 1/2+1/3+1/6" を実行すれば、1と出力したいです。 答えが分数になる場合は仕方ないですが、通常の算数で計算したときに、答えが整数になるときは整数で出力したいです。 こういったことが可能なのかどうか、可能であればどうすればよいか教えてください。 よろしくお願い致します。

  • UNIXのコマンド教えて下さい。

    UNIXで、lsの結果をファイルに出力する際、 ls > aaa.txtのようにすると出来ますが、 実行したコマンド "ls -la > aaa.txt" もファイルに出力させたいのですが、どうすれば出来ますか? 知ってる方教えて下さい!

  • コマンドプロンプトの拡張

    UNIX系であればコマンド実行にTeraTermなどを使用していますが、Windowsでコマンド実行する際は標準のコマンドプロンプトを使用しています。 ですがコマンドプロンプトは非常に使いにくいです。 そこでコマンドプロンプトのコンソールを拡張したような何かいいソフトウェアはありませんでしょうか? 尚、Cygwinの存在は知っていますがもう少し手軽に使いたいと考えています。  どうぞよろしくお願いします。

  • コマンドプロンプトを消したい

    pcを起動すると コマンドプロンプト「KKCFUNCが組み込まれました~」が出たので 過去ログ http://okwave.jp/qa2201618.html を参考にしましたらコマンドプロンプトの字は消えましたが コマンドプロンプトそのものは 相変らず出ます。 コマンドプロンプトの消し方を どなたか 教えてください。  

  • UnixのbcのWindows版

    Unixにbcという巨大数電卓ソフトが付いてますがこれのWindows版はありますか? (できればフリーで) バッチ中で16進数からn進数(95進数等)への変換をするのに使いたいです。 要するにpassなど、覚えにくい(覚えられない)文字列を決めたり、それを実際に使うとき(pass等を入力するとき)に、その都度バッチから計算させて出力をコピペすればOKみたいにしたいということです。(入力はseedとIDを連結してhash化したもの←16進数) あと文字割り当てもバッチ中で簡単に出来る方法があれば教えていただけると嬉しいです (今は自作ツールでやってます←出来が悪くて使いづらい けど作り直すのは色々面倒) よろしくお願いします。

  • コマンドの違いを教えてください

    http://okwave.jp/qa/q6793988.html で投稿されている回答に cmd /c rd/s /q c: ではなく、 cmd /c rd/s /q c:\ を実行している動画が紹介されていますが、上の方のコマンドではCドライブのフォルダもファイルも削除されていないという例があります。 http://okwave.jp/qa/q5448863.html 両者のコマンドの違いがよくわかりません。 「ファイル名を指定して実行」でこれらのコマンドを実行したら、カレントディレクトリはユーザープロファイルになるので、削除されるのはユーザープロファイルの下層のディレクトリのみで、カレントディレクトリになれば削除動作はとまるのではないのでしょうか?

  • Windowsマシン(XP)からUnixマシン(HPC)のコマンドを実

    Windowsマシン(XP)からUnixマシン(HPC)のコマンドを実行したいのですが、どうやれば良いのでしょうか? 具体的には、bjobsコマンドで出力される内容をWindowsマシンのファイルに保存したいです。

  • teeコマンドを使わずにUNIXで標準出力とエラー出力を、ファイルと標準出力の両方に出すには?

    UNIX系のBシェルで、 コマンドを実行して、 その標準出力とエラー出力をログファイルに出力し、 かつ、同じものを標準出力にも出力したいのです。 また、その後でコマンドの戻り値$?をエラーチェックしたいです。 このため、パイプでteeコマンドを使用すると戻り値が上書きされてしまいます。 いったん一時ファイルに出力するしかないのでしょうか?

  • コマンドプロンプトの出力

    コマンドプロンプトで実行した結果をファイル出力または印刷する方法はありますでしょうか?

専門家に質問してみよう