JCA手順における数値表現はEBCDICにしないでおくれと言っても無理ですかorz

備忘録です。

汎用機に使われていた表現でJCA手順が策定されているので、数値表現にはEBCDICを使われている。
JISで見ると9(6)V99 だと整数部が6桁小数部が2桁

例えば、0000010{ だと 000001 整数部 0{ 小数部となり  { は +0 を表すので +1.00 → 1 となる
      0000010} だと 000001 整数部 0} 小数部となり  } は -0 を表すので -1.00 → -1 となる

} +0
A +1
B +2
C +3
D +4
E +5
F +6
G +7
H +8
I +9
} -0
J -1
K -2
L -3
M -4
N -5
O -6
P -7
Q -8
R -9
となり、
+0は +の符号が頭について、+は一般社会では省略されるので消えるけど}の位置に0が入るってこと
------------------------

9(6)V99で0000080Mの場合

9(6)V99は整数部6桁で小数部2桁だから
0000080M は

整数部 000008
小数部 0M で符号も入ってる

整数部で8
小数部で0(-4)となり符号が前に来るから

-8.04 となる。
 
C言語で表記する場合、テキストとして処理し、{等の字に数字を当てて実数化してキャスト返還するなりした後、符号で-ならば -1かける とかすればよい
 ただ、{ } の2文字がアルファベットとは違う順序にいるために、条件分岐で処理するとして文字比較として扱う方が分かりやすい。単純にAのJISコードの整数値をBのJISコードの整数値で引くと -1 なんだけどこういう処理が{ }では例外処理になるんでやや面倒くさい。たった20個なんで条件分岐で良いと思う。


ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック