0

編集:

私は(ASCIIのテストファイル)ASCIIで次のレコードを持っています: "000000000.00"
BCDのカウンターパート(bcd/ebcdicの他のテストファイル)を解析してISOを出力する必要があります。
BCDで6文字、ASCIIで11文字かかると思います。
だから私の必要性は、それを前後に変換できる何かでした.
最初に、各文字を取得し、それを変換関数にフィードして元に戻すことを考えたので、めちゃくちゃな質問になりました。

私はもっ​​と明確であることを願っています。

ヤイン

4

3 に答える 3

3

ピーター・ビロウ博士 (チーム Bの) は、数年前に古い Borland Delphi ニュースグループでこれらを寄贈しました:

// NO NEGATIVE NUMBERS either direction.

// BCD to Integer
function BCDToInteger(Value: Integer): Integer;
begin
  Result := (Value and $F);
  Result := Result + (((Value shr 4) and $F) * 10);
  Result := Result + (((Value shr 8) and $F) * 100);
  Result := Result + (((Value shr 16) and $F) * 1000);
end;

// Integer to BCD
function IntegerToBCD(Value: Integer): Integer;
begin
  Result :=                   Value div 1000 mod 10;
  Result := (Result shl 4) or Value div  100 mod 10;
  Result := (Result shl 4) or Value div   10 mod 10;
  Result := (Result shl 4) or Value          mod 10;
end;
于 2013-05-31T15:17:57.787 に答える