問題タブ [dc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1588 参照

binary - dc を使用して分数の 10 進数を分数の 2 進数に変換する方法

したがって、dc は基数間の変換に最適なツールです。ちょっといじるコーディング作業に便利です。たとえば、1078 をバイナリに変換するには、次のようにします。

ただし、0 と 1 の間の分数を正しく出力できません。0.3 をバイナリに変換しようとしています:

しかし、0.0100(bin) = 0.25 は 0.3 ではありません。

ただし、手動で値を作成すると、正しい答えが得られます

まあ、私が求める10の有効数字よりも多くを与えているように見えますが、それは問題ありません

私は何か間違ったことをしていますか?それとも、dc ができないことを dc にさせようとしているのですか?

0 投票する
2 に答える
1976 参照

python - 10進数を作成します。Pythonのデフォルトの数値型はDecimalです。

Pythonのすべての数値のデフォルトタイプをdecimal.Decimalにする方法はありますか?数値ごとにdecimal.Decimal(...)を呼び出さなくても、bcおよびdcプログラムと同様の方法でPythonを使用できるようにしたいと思います。

編集:初心者の場合:bc

編集2:モジュールをトークン化していただきありがとうございます。。

0 投票する
3 に答える
1089 参照

bash - dc(1) と先行ゼロ

シェル スクリプトがあり、dc(1) を使用して計算を行います。

先頭にゼロを付けて 1 つの数値を出力する必要があります。dc 自体でこれを行う簡単で簡単な方法を見つけることはできませんが、マンページには次のように記載されています。

Z
スタックから値をポップし、その桁数 (文字列の場合は文字数) を計算し、その数値をプッシュします。数値の桁数には、基数の右側にある場合でも先行ゼロは含まれません。

これは、簡単で簡単な方法があることを意味します...

これを実現する方法は無数にあることを私は知っており、スクリプトはそのうちの 1 つを使用して問題なく実行されています。私はただ興味があります;-)

0 投票する
2 に答える
445 参照

linux - 数式を解析/評価するための優れたツールはありますか?

うーん:

解析エラーを認識したときに、それ以外の場合は完全に合理的なプログラムが成功するのはなぜでしょうか? 明らかに、bc を使用して式を評価することはできません。個人的には dc が好きですが、私のユーザーは逆研磨を望んでいません。bc が認識する形式の算術式が与えられた場合、結果を評価するための適切なプログラムはありますか? または、bc を合理的にする方法はありますか? (ここで「合理的」とは、入力が偽の場合に失敗することを意味します。)

0 投票する
1 に答える
651 参照

shell - dcでシェルスクリプトの入力ベースを変更しますか?

シェルスクリプトで dc を使用して入力と出力のベースを変更しようとしています。正確なコマンドを書き留めるのに苦労しています。私はBASHを持っていません。

私はこれのバリエーションを試しました: (input numb) 2i 10o p | 直流

0 投票する
3 に答える
2068 参照

numbers - DCまたはその他を使用して大きな数を基数36に変換する方法

さまざまな基数で最大 64 ビットの符号なし値を表現しようとしています。

ベース 2 (バイナリ) の場合、64 個の 1 になります。

基数 16 (hex) の場合、16 F になります。

基数 10 (10 進数) の場合は次のようになります。

この値の表現を base 36 で取得しようとしています (0-9 と AZ を使用します)。多くのオンライン ベース コンバーターがありますが、それらはすべて 64 ビット演算によって制限されているため、正しい表現を生成できません。

DC (無制限の大きさの数を処理できる非常に使いにくい文字列演算プロセッサ) の使用方法を知っていて、この変換の方法を知っている人はいますか? それか、整数のロールオーバーが原因で失敗しない電卓でこの変換を実行する方法を教えてもらえますか?

0 投票する
2 に答える
1522 参照

c - Unix 'dc' ユーティリティを C で実装する

課題を始めるためのヒントを得られることを願っています。次のように書かれています。

「後置記法で式を評価し、変数とマクロ文字列を使用した追加の計算もサポートする「dc」ユーティリティと同様に動作するプログラムを実装します。既存のユーティリティを自由に試して、そのマニュアルページを参照してください。割り当ては完全なユーティリティのサブセットのみをサポートします。 -- すべての数値は整数で、基数 10 のみを使用します。

-- 数値は 32 ビットの符号付き数値の範囲内であると想定される場合があります

-- すべてのレジスタ名は英数字になります (これらの dc のサブセットが許可されます)。

-- コマンド ライン オプションや引数は必要ありません。

-- 次のコマンドのみが必要です (マニュアルと同じ順序でリストされています) pnf + - * / % ^ cdrsl SL x > !> < !< = != q #

割り当てと既存のユーティリティのいくつかの重要な違い: -- すべての入力は標準入力のみを介して行われます (ただし、必ずしもキーボードではありません)。

-- レジスタ スタックは最初は空ではありませんが、無限のゼロで埋められます

-- マクロ呼び出しのネスト レベルに関係なく、q コマンドはプログラムを終了します。

-- 読みやすくするために、入力トークンの間に追加のスペースを入れることができます (スペースはコマンドでも、値でも、レジスタ名でもありません)"

正直なところ、どこから始めればよいかわかりません...どんな助けも大歓迎です、ありがとう。

0 投票する
1 に答える
478 参照

dc - dc: スタックの一番上の数字をポップ (および破棄) するにはどうすればよいですか?

DC で、スタックの一番上から数値をポップして破棄するにはどうすればよいですか? アイテムが 3 つあるスタック ( 1 2 3) は、アイテムが 2 つあるスタック ( 2 3) になります。現在、私は数字を別のスタック (Sz) に押し込んでいますが、それはかなり不自由なようです。