問題タブ [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.
c# - BCD をバイナリに変換する最も効率的な方法
32 ビット BCD 値 (2 つの uint 半分で提供) を uint バイナリ値に変換するコードを以下に示します。
指定できる値は最大 0x9999 で、最大値は 0x99999999 になります。
これを達成するためのより良い(つまり、より速い)方法はありますか?
java - String から 2 進化 10 進数 (BCD) をデコードする Java コードまたは lib
BCD 値を表す 1 ('\u0031') と 0 ('\u0030') で構成される文字列があります。
具体的には、文字列は 112 文字相当の 1 と 0 であり、一度に 8 個または 16 個のいずれかを抽出し、BCD から 10 進数にデコードする必要があります。
アイデア?パッケージ?図書館?コード?どなたでも大歓迎です。
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。
c++ - 符号なし整数から BCD への変換?
このテーブルを使用して、10 進数を BCD に変換できることはわかっています。
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
この変換の式はありますか、それとも表を使用する必要がありますか? この変換用のコードを書き込もうとしていますが、その計算方法がわかりません。提案?
ibm-midrange - AS400 パック 10 進数 (BCD) のアンパック - EBCDIC 変換によって中断された可能性がありますか?
FTP 経由で AS/400 から Windows (SBS 2003) にファイルを転送しています。ファイルは固定幅データです。テキストは正常に表示されますが、一部のフィールドはパック 10 進数であり、アンパックすると不適切な値になります。私の推測では、暗黙の EBCDIC->ASCII 変換が発生しており、パックされたバイトも変換されています。ただし、逆の変換を行ってそれらを解凍すると、依然として悪い値が返されます...時々。
私の推測では、彼らが使用しているコードページはわずかに異なっています (したがって、EBCDIC に戻すと、まったく同じではありません)。 .やや反抗的...それ以外の場合は、バイナリ モードで FTP を実行し、これらの問題をすべてスキップできます)。
ここにいくつかのサンプル データがあります - これらは、実際には YYYYMMDD 形式の日付である 8 桁の数字に展開されることになっています。
以下は、まったく機能しない ebcdic に変換するためのコードページです。
.net - .net は ascii を bcd に変換する API を提供していますか?
プラットフォーム 3.5 .net.(c#) から
ascii を bcd (c#) に変換するコードを参照してください。
tcp - C#のバイトに入れられた2進化10進数(BCD)
私は、0から160までの小数を1バイトに入れるように指示するプロトコルの実装に取り組んでいます。必要なBCDの種類が指定されていないため、1桁を下のニブルに、もう1桁を上のニブルに入れると仮定します。つまり、2桁の小数で1バイトを取得します。しかし、より大きな値はどのようにして1バイトに収まるのでしょうか。たとえば160?
assembly - アセンブラ : なぜ BCD が存在するのですか?
バイナリがわからない場合、BCD はより直感的なデータ型のようなものです。しかし、このエンコーディングを使用する理由がわかりません.4ビットでの表現が無駄になるため(表現が9より大きい場合)、あまり意味がありません。
また、x86 は add と sub のみを直接サポートしていると思います (FPU 経由で変換できます)。
これが古いマシンまたは他のアーキテクチャに由来する可能性はありますか?
c# - intをBCDバイト配列に変換する
BCDを使用してintをbyte[2]配列に変換したいと思います。
問題のintは、年を表すDateTimeから取得され、2バイトに変換する必要があります。
これを行う既成の関数はありますか、それともこれを行う簡単な方法を教えていただけますか?
例:
出力します:
c - BYTE BCD から ASCII への変換の最適化
バイト (unsigned char) BCD 文字列を ASCII に変換する関数を c で作成しました。コードを見て、いくつかの改善点をアドバイスしてください。
BYTE BCD を ASCII に変換できる他の効率的な方法はありますか。
ありがとう
ファカール