問題タブ [bcd]

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 投票する
3 に答える
1551 参照

java - 2桁の10進数からint配列のBCDへのJava変換

2 桁の 10 進数を int 配列に変換する必要があります。たとえば、私が数値を持っていると仮定すると、それをwhereと32に変換したいと思います。int[] a = new int[2]int[0] = 3int[1] = 2

0 投票する
4 に答える
8925 参照

algorithm - ダブル ダブル アルゴリズムが機能するのはなぜですか?

ダブルダブルアルゴリズムが機能する理由を理解しようとしていますが、理解できません。

http://www.classiccmp.org/cpmarchives/cpm/mirrors/cbfalconer.home.att.net/download/dubldabl.txtや http : //en.wikipedia.org/wiki/Double_dabble

説明の試みもあります。私が見つけた最高のものはこれです: http://www.minecraftforum.net/forums/minecraft-discussion/redstone-discussion-and/340153-why-does-the-double-dabble-algorithm-work#c6

でもまだ接続部分が足りない気がします。ここに私が得るものがあります:

  • 2 進数を 10 進数に変換するには、10 進数値 0 から始めて、2 進数の桁を繰り返し、1 に達するたびに 10 進数に 1 を追加します。 2 進数で、次の桁に移動するときに 2 を掛けます (最後のリンクで説明したように)。
    • しかし、なぜこれがダブル ダブル アルゴリズムにつながるのでしょうか? 10 進数ではなく、BCD で変換したいのです。乗算 (シフト) を維持するのに、1 の加算を削除するのはなぜですか? 接続はどこですか?
  • シフトする前に BCD フィールドの数値が 4 を超えると、なぜ 3 を加算する必要があるのか​​がわかります。シフトするとBCD数が2倍になるようにするには、いくつかの修正を行う必要があるためです。BCD 数0000 1000(8) をシフトして double (16) を取得したい0001 0011場合は、シフトする前に 3 (6 の半分) を追加する必要があり0001 0000ます。 6)。
    • しかし、なぜこれが必要なのですか? 1 の追加はどこで行われているのでしょうか?

私はほんの少しの部分が欠けていると思います。

0 投票する
4 に答える
2032 参照

c++ - 8桁のBCDチェック

私は 8 桁の BCD 番号を持っており、それが有効な BCD 番号であるかどうかを確認する必要があります。プログラム (C/C++) でこれを作成するにはどうすればよいですか?

例: 0x12345678 は有効ですが、0x00f00abc は無効です。

前もって感謝します!

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

c++ - BCD による大きな数の作成 - C++

MAXINT より大きい数値を取得するのに役立つコードを作成したいと考えています。Binary Code Decimal を使用してこれを行うと、大きい方の 2 つの 10 進数 (BCD に変換) ごとに char を保持できると聞きました。しかし、これを行う方法は?入力として文字列を指定し、10 進数ごとに何らかの方法で BCD に変換する必要がありますか? そして、変換された2つの10進数を1つの文字にするにはどうすればよいですか? 私はC++が初めてで、どうすればよいかわかりません。

PSそのような問題のために「特別な」ライブラリを使用したくありません。

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

bit-manipulation - 整数を使用した 2 進化 10 進加算

パックされた BCD 形式の 2 つの数値があり、それらを加算したい場合、次のように加算するのは良い方法ですか? 両方の数値を整数に変換し、通常の整数加算を実行してから、結果を BCD に戻します

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

binary - Fortran で BCD を実装するにはどうすればよいですか?

私の質問のタイトルが意味をなすかどうかわからないので、ご容赦ください。できるだけ少ないビット数で 1 桁の数値を表すシステムを見つけたいと思います。私の理想的な解決策となる「高密度パック10進数」(https://en.wikipedia.org/wiki/Densely_packed_decimal)と呼ばれる方法がありますが、それが可能かどうか、またはそれ以上の方法なしでそれを実装する方法さえわかりませんグルからの研究または指導。

次善の策は、4 ビットのアドレス指定システムを使用して数字を表現できるようにすることですが、それが可能かどうかはわかりません。

そう!上記のメソッド/システムの実装を除いて、2 つの整数のペアを表すために使用できる 1 バイトのデータ型に落ち着くことができました。Fortran には 1 バイトのデータ型がありますか、それともそのレベルの制御は許可されていませんか?