• ベストアンサー

COBOLでハーフバイト数値を読むには?

1バイトで2桁の数値(つまり4ビットで1桁の数値)が書いてあるデータを1バイト1桁の数値に変換するにはどのようにプログラミングすればいいですか? またはフリーのツールでもあれば教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.2

   WORKING-STORAGE     SECTION.  *    01 SRC-DATA      PIC 9(2) COMP-3.    01 SRC-DATA-R     REDEFINES SRC-DATA.     03 SRC-DATA-BYTE   PIC X(1).  *    01 DST-DATA      PIC 9(2).    01 DST-DATA-R     REDEFINES DST-DATA.     03 DST-DATA-BYTE1  PIC 9(1).     03 DST-DATA-BYTE2  PIC 9(1).  *   PROCEDURE      DIVISION.  *   START.     MOVE  1バイトの何か  TO  SRC-DATA-BYTE.     MOVE  SRC-DATA     TO  DST-DATA.     MOVE  DST-DATA-BYTE1  TO  上の桁(0~9)     MOVE  DST-DATA-BYTE2  TO  下の桁(0~9)   *     STOP RUN.   *

uchi38
質問者

お礼

まだ試してはいないのですが、ロジックを拝見したところできそうな気がします。 ありがとうございました。

その他の回答 (2)

回答No.3

どこのメーカーの何というCOBOLですか? OSは何でしょうか? 私が長年使っていたCOBOLでは、10進パック形式は必ず符号部が存在(+はX'C'、-は'D'、符号なしはX'F'など)していました。 つまり、2桁の10進数では、2バイト使われていました。 念のために確認ですが、符号部は存在しないのですね?

  • ssykpu
  • ベストアンサー率28% (319/1125)
回答No.1

パック十進数をゾーン十進数にするのですか?それなら簡単だけど(MOVEするだけで変換されるのが普通)それともなにか特別な事でもするのですか?それが分からないと答えようがありません。