-PR-
解決済み

S9タイプからXタイプにデータは移行できるのか。(COBOL)

  • 困ってます
  • 質問No.972875
  • 閲覧数3689
  • ありがとう数5
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 100% (17/17)

こんにちは。
まったくのCOBOLビギナーで困っています。
私がしたいことは、
S9タイプのデータを、Xタイプに移すということです。
元データには'40'(16進数)というデータが入っています。
これは +0 という意味だとおもいます。

これを、Xタイプにムーブして、
'0'と出したいわけです。

'0'を出す為には、'30'(16進数)であればいいことは
バイナリで確認しています。

単純にMOVEを書けても、これは、'@'になってしまいます。
S9→X への移行ってできるものなのでしょうか?

知っている方がいらっしゃったらご教授ください。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.3
レベル9

ベストアンサー率 49% (33/67)

こんばんは。

タイプの違う項目は、直接 MOVE しない方が良いと思います。
たとえば、こんなやり方はいかがでしょうか。

01 A PIC S9.
01 B-X.
  03 B PIC 9.

と定義しておいて、A を B に MOVE 後、B-X を見ると "0" だと思うのですが。
ちなみに、B を 9(2) としますと、B-X は "00"となり、
B を Z9 とすれば、" 0" になると思います。

COBOL もホストメーカーが違うと、拡張機能の関係で微妙に違ったりするので、不安なんですが。
ご参考までに。
補足コメント
hiroro_227

お礼率 100% (17/17)

本日、知人から耳にした回答でこのようなものがありました。

S9はやはり 符号がビットに反映されているため、
1度、COMPUTEで1をかけてやる必要があるそうです。

試してみたところ、’@’が出なくなりました。
確かな解決かどうかはわかりませんが、
これで上手くデータ移行が出来たとおもいます。

みなさんのご協力感謝いたします。
投稿日時 - 2004-08-24 10:31:23
お礼コメント
hiroro_227

お礼率 100% (17/17)

回答ありがとうございます。

1度、9、9999、zzzz等でためしましたが、だめでした;
投稿日時 - 2004-08-24 10:30:27

その他の回答 (全2件)

  • 回答No.2
レベル9

ベストアンサー率 38% (38/98)

S9タイプの値がNullになっているのでは?
まず、
0  → S9(MOVE)
S9 → X (MOVE)
でどうでしょう?
お礼コメント
hiroro_227

お礼率 100% (17/17)

回答ありがとうございます。

S9には、もともとゼロのデータが入っているのは確認
しました。Display をかけると、+0 とでてきます。

どうやら、この符号がなんらかのかたちでビットに反映されているようなのです;
投稿日時 - 2004-08-24 10:29:05


  • 回答No.1
レベル14

ベストアンサー率 65% (1020/1553)

S9→9→X
の順でMOVE
お礼コメント
hiroro_227

お礼率 100% (17/17)

回答ありがとうございます。
最初私もそれでやってみましたが、無理でした;
投稿日時 - 2004-08-23 20:30:18
このQ&Aで解決しましたか?
関連するQ&A
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-

特集


開業・独立という夢を持つ人へ向けた情報満載!

ピックアップ

-PR-
ページ先頭へ