問題タブ [number-systems]
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.
c# - 基数 10 の数値を .NET の任意の基数に変換する最も簡単な方法は?
私が書いた古い(っぽい)C#メソッドがあり、数値を取り、それを任意の基数に変換します:
それほど高速できれいなわけではありません。.NET でこれを達成するための適切な既知の方法はありますか?
使用する任意の文字列で任意のベースを使用できるものを探しています。
これは、基数 16、10、8、および 2 のみを許可します。
これを使用して、数字、すべて小文字、すべて大文字を利用して、非常に高いベースを実現したいと考えています。このスレッドのようですが、JavaScript ではなく C# 用です。
C#でこれを行う良い効率的な方法を知っている人はいますか?
ruby - 10 進数とその他の n を基数とする数値システムとの間の相互変換
私は、10 進数とその他の基数 n の数値システム (今のところ n<=36) との間で変換するための一般的な関数をいくつか作成しました。ここで面倒なことをしたくないので、ここにコードを投稿しました。
誰かがこれのためのより良い方法を提案できますか? より効果的でルビーっぽいかもしれませんか?
ありがとう
number-systems - さまざまな数値システムの小数値を相互に変換できるフリーウェア ツールはありますか?
私はすでに Google を検索しましたが、さまざまな数値システムの小数値を相互に変換するツールが見つかりません。
誰か手を貸してくれませんか?
WindowsXP 用のフリーウェア実行ファイルが必要です。
java - Base-10 から Base-9 に変換する Java コード
文字列に変換せずに、基数 10 の長い数値を基数 9 に変換する方法は?
algorithm - キャリーフリー加算の複雑さ
2 つの 2 進数は、通常の「通常の冗長な」表現で表すことができます (つまり、別の数字、たとえば 2 を導入して、2 つの連続する 2 の間にゼロがあるような一意でない表現を取得します)。自由。複雑さは O(k) であると聞いたことがあります。ここで、k は 2 つの数値のうち短い方の長さです。しかし、アルゴリズム自体は何ですか?どこにもウェブ上に表示されていないようです。結果が規則性を維持するように、一定時間でそのような表現に1を追加できることを私は知っています。しかし、これを一般化する方法がわかりません。
hex - 番号システムの精度
10 シンボル (0-9) の 10 進法と 16 シンボル (0-9,AF) の 16 進法など、2 つの数法がある場合、16 進法のほうが記号の数が多いため、10 進数システム ??
Edit1: 申し訳ありませんが、私はコンピューターの観点からのみ質問していました。それは書面による計算か何かのためかもしれません
algorithm - 基数システムに基づくアルゴリズム?
私は最近、創造的なベースでの数字の巧妙な使用に部分的または全体的に基づいている非常に多くのアルゴリズムがあることに気付きました. 例えば:
- 二項ヒープは 2 進数に基づいており、より複雑なスキュー二項ヒープはスキュー 2 進数に基づいています。
- 辞書式順序順列を生成するための一部のアルゴリズムは、階乗数システムに基づいています。
- 試行は、文字列の 1 桁ずつを適切な基数として調べるツリーと考えることができます。
- ハフマン エンコーディング ツリーは、ツリー内の各エッジがバイナリ表現で 0 または 1 をエンコードするように設計されています。
- フィボナッチ コーディングは、フィボナッチ検索で使用され、特定の種類の対数を反転するために使用されます。
私の質問は、直感や証明の重要なステップとして巧妙な数体系を使用するアルゴリズムが他にあるでしょうか? . このテーマについて講演をまとめることを考えているので、引き出さなければならない例が多ければ多いほどよい.
java - 基数変換: 分数の問題
私は、任意の基数 (2-36) を別の基数 (整数) に変換できるシステムを作成しました。また、任意の実数を基数 10 から他の基数 (2-36) に変換できます。
私の問題は、有理数/無理数を 10 以外の基数から別の基数に変換するときに発生します。
小数点の右側の変換には、次のアルゴリズムを使用します。
1) 入力の小数点の右側 (0.xxxxxx--->) を取り、変換先の基数を掛けます。
2) 1 より大きい数値 (点の左側) を取り、変換された数値の右側に追加します。
3) 積の右辺を取り、次の繰り返しで乗数として使用します (基数に掛けます)。
4) 満足するまで繰り返すか、整数 (右側に 0) を残します。
これは、浮動小数点数を 10 進数から別の基数に変換する場合にうまく機能しますが、明らかに、10 進数でない基数から FROM を変換することはできません。
だから私が試したのは、その初期値を小数点の右側にある10を基数に変換し、数学部分を実行してから、それを出力値に追加するときに元の基数に戻すことです(前に新しい基数に変換されます)追加されています)。
残念ながら、これは小数点の右側に対して誤った結果を返します。したがって、10 を基数としていない基数から変換すると、左側は常に正しいが、右側は正しくない答えが得られます。
これを機能させる方法についてのアイデアはありますか?それとも、そうではないのでしょうか?
編集
または、誰かが私をリンクしたり、有理16進数値を10進数に変換する方法を教えてもらえますか? この問題を回避するには、それだけで十分です。
解決
将来、この質問を読んだ他の人のために、この問題のかなり簡単な回避策を見つけました。
あなたがしなければならないのは、小数の右側の数字(底が何であれ)を取り、それを小数に変換することです(整数を変換する方法はこちらで見ることができます)。次に、その数値を取り、最大位の値で割ります。例えば:
次に、その小数値を取得して、上で説明したアルゴリズムを実行できます。
この問題についてみんなの助けをありがとう!
c - 大きなベース B 数を保存する最良の方法は?
右シフトや最下位ビットのチェックなどの操作を効率的に実行できるように、大きな基数 B の数値を格納する最良の方法は何ですか?
実際、私はインタビューの質問に出くわしました。
私が考えていたのは、 を考えるとbase N number system
、その中のN^N
に相当する1 followed by N zero
ということです。たとえば - N = 2 の場合、2^2 = 100 (基数 2)、N=3 の場合、3^3 = 1000 (基数 3)。その後、かどうかを判断する関数を簡単に作成できますK = N^N
。
現在、この関数には 2 つの大きな問題があります。
効率的にするために、右シフトを実行して最下位ビット操作を効率的にチェックできるように、大きな基数 N の数値を表す方法を探しています。誰もそのようなことに遭遇したことがありますか?または、この問題を効率的に解決する他の方法を知っている人はいますか?
c - Cの文字列内の8進表現
与えられたプログラムでは:
出力は次のように表示されます。
63 55 0
-?---7-- ----
\ 0(\ 077)の後の最初の2文字を8進数から10進数に変換していることは理解できますが、なぜ2文字なのか、なぜ1、3、またはその他の文字なのかを説明できますか?
この背後にある論理を説明してください。