Google
オフコン練習帳内を検索
インターネット全体を検索

NECオフコン関連
オフコン一般
情報

[掲示板に戻る]


6 Re:[5]:16進を10進に変換する方法
江須扇 2006-8-19 16:49  [返信] [編集]

ご指摘の通りですね。

COMP-1場合、
−32768≦x≦32767
となり、上1桁目のビットは負をあらわすので、
16進数を単純に10進数に戻せない場合があると言うことですね。

例えば、

02 REI1 USAGE IS COMP-1
02 REI1-ANS PIC 9(5)

IF REI1 < 0
   THEN COMPUTE REI1-ANS = REI1 + 65536
   ELSE MOVE REI1 TO REI1-ANS
END-IF

等の工夫が必要という事ですね。


2バイトまでしか使えないので、
4バイトの場合はCOMP-2を使いますがこれも
−2147483648≦y≦2147483647
なので

02 REI2 USAGE IS COMP-2
02 REI2-ANS PIC 9(10)

IF REI2 < 0
   THEN COMPUTE REI2-ANS = REI2 + 4294967296
   ELSE MOVE REI2 TO REI2-ANS
END-IF

6バイトの場合は

02 REI3.
  03 REI31 USAGE IS COMP-1
  03 REI32 USAGE IS COMP-2
02 REI31-ANS PIC 9(05)
02 REI32-ANS PIC 9(10)
02 REI3-ANS  PIC 9(15)

IF REI31 < 0
   THEN COMPUTE REI31-ANS = REI31 + 65536
   ELSE MOVE REI31 TO REI31-ANS
END-IF
IF REI32 < 0
   THEN COMPUTE REI32-ANS = REI32 + 4294967296
   ELSE MOVE REI32 TO REI32-ANS
END-IF
COMPUTE REI3-ANS = REI31-ANS * 4294967296 + REI32-ANS

等の作業が必要と言うことでしょうか?


16進を10進に変換する方法 ゼロ 2006-8-5 8:59
Re:16進を10進に変換する方法 江須扇 2006-8-5 18:14
Re:16進を10進に変換する方法 ちょっと前までA-V... 2006-8-17 23:18
Re:16進を10進に変換する方法 ゼロ 2006-8-18 10:18
Re:16進を10進に変換する方法 江須扇 2006-8-19 7:35
Re:[5]:16進を10進に変換する方法 江須扇 2006-8-19 16:49 ←いまここ〜
Re:[5]:16進を10進に変換する方法 ゼロ 2006-8-22 13:02
BluesBB ©Sting_Band