問題タブ [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 投票する
7 に答える
13265 参照

c# - BCD をバイナリに変換する最も効率的な方法

32 ビット BCD 値 (2 つの uint 半分で提供) を uint バイナリ値に変換するコードを以下に示します。

指定できる値は最大 0x9999 で、最大値は 0x99999999 になります。

これを達成するためのより良い(つまり、より速い)方法はありますか?

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

java - String から 2 進化 10 進数 (BCD) をデコードする Java コードまたは lib

BCD 値を表す 1 ('\u0031') と 0 ('\u0030') で構成される文字列があります。

具体的には、文字列は 112 文字相当の 1 と 0 であり、一度に 8 個または 16 個のいずれかを抽出し、BCD から 10 進数にデコードする必要があります。

アイデア?パッケージ?図書館?コード?どなたでも大歓迎です。

0 投票する
5 に答える
8354 参照

c - 本当に大きな数を2進数から10進数に変換して印刷します

2進数を10進数に変換する方法を知っています。私は少なくとも2つの方法を知っています:テーブルとパワー;-)

2進数を10進数に変換して、この10進数を出力したいと思います。さらに、私はこの「10進数」には興味がありません。印刷したいだけです。

しかし、上で書いたように、私は2進数を10進数に変換する方法を2つしか知らず、両方とも加算が必要でした。したがって、バイナリで1または0の値を計算し、それを記憶されている値に追加します。これは薄い場所です。私は本当に本当に大きな数(1と64のゼロ)を持っています。変換中は、中間結果を「変数」に配置する必要があります。Cでは、「int」型があります。これは4バイトのみで、10^11以下です。

そのため、2進数から10進数に変換するときに、中間結果を保存するのに十分なメモリがありません。上で書いたように、私はその小数には興味がなく、結果を出力したいだけです。しかし、私はそれを解決する他の方法を見ていません;-(バイナリから「ただ印刷する」ための解決策はありますか?

または、中間表現にBCD(Binary Coded Decimal)のようなものを使用する必要がありますか?クロスプラットフォームではないので、私は本当にこれを使いたくありません(Intelのプロセッサには組み込みの機能がありますが、他の場合は独自の実装を作成する必要があります)。

ご意見をお聞かせいただければ幸いです。しばらくお待ちいただきますようお願いいたします。

言語:C。

0 投票する
10 に答える
49757 参照

c++ - 符号なし整数から BCD への変換?

このテーブルを使用して、10 進数を BCD に変換できることはわかっています。

0 0000

1 0001

2 0010

3 0011

4 0100

5 0101

6 0110

7 0111

8 1000

9 1001

この変換の式はありますか、それとも表を使用する必要がありますか? この変換用のコードを書き込もうとしていますが、その計算方法がわかりません。提案?

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

ibm-midrange - AS400 パック 10 進数 (BCD) のアンパック - EBCDIC 変換によって中断された可能性がありますか?

FTP 経由で AS/400 から Windows (SBS 2003) にファイルを転送しています。ファイルは固定幅データです。テキストは正常に表示されますが、一部のフィールドはパック 10 進数であり、アンパックすると不適切な値になります。私の推測では、暗黙の EBCDIC->ASCII 変換が発生しており、パックされたバイトも変換されています。ただし、逆の変換を行ってそれらを解凍すると、依然として悪い値が返されます...時々。

私の推測では、彼らが使用しているコードページはわずかに異なっています (したがって、EBCDIC に戻すと、まったく同じではありません)。 .やや反抗的...それ以外の場合は、バイナリ モードで FTP を実行し、これらの問題をすべてスキップできます)。

ここにいくつかのサンプル データがあります - これらは、実際には YYYYMMDD 形式の日付である 8 桁の数字に展開されることになっています。

以下は、まったく機能しない ebcdic に変換するためのコードページです。

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

.net - .net は ascii を bcd に変換する API を提供していますか?

プラットフォーム 3.5 .net.(c#) から

ascii を bcd (c#) に変換するコードを参照してください。

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

tcp - C#のバイトに入れられた2進化10進数(BCD)

私は、0から160までの小数を1バイトに入れるように指示するプロトコルの実装に取り​​組んでいます。必要なBCDの種類が指定されていないため、1桁を下のニブルに、もう1桁を上のニブルに入れると仮定します。つまり、2桁の小数で1バイトを取得します。しかし、より大きな値はどのようにして1バイトに収まるのでしょうか。たとえば160?

0 投票する
10 に答える
8127 参照

assembly - アセンブラ : なぜ BCD が存在するのですか?

バイナリがわからない場合、BCD はより直感的なデータ型のようなものです。しかし、このエンコーディングを使用する理由がわかりません.4ビットでの表現が無駄になるため(表現が9より大きい場合)、あまり意味がありません。

また、x86 は add と sub のみを直接サポートしていると思います (FPU 経由で変換できます)。

これが古いマシンまたは他のアーキテクチャに由来する可能性はありますか?

0 投票する
9 に答える
19593 参照

c# - intをBCDバイト配列に変換する

BCDを使用してintをbyte[2]配列に変換したいと思います。

問題のintは、年を表すDateTimeから取得され、2バイトに変換する必要があります。

これを行う既成の関数はありますか、それともこれを行う簡単な方法を教えていただけますか?

例:

出力します:

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

c - BYTE BCD から ASCII への変換の最適化

バイト (unsigned char) BCD 文字列を ASCII に変換する関数を c で作成しました。コードを見て、いくつかの改善点をアドバイスしてください。

BYTE BCD を ASCII に変換できる他の効率的な方法はありますか。

ありがとう

ファカール