COBOL data type buffer content



== BASIC VALUE ==



01  BUFFER-X         PIC X(5)


  MOVE "ABC" TO BUFFER-X.    *>0x 41 42 43 20 20   = "ABC  "

  MOVE "123" TO BUFFER-X.      *>0x 31 32 33 20 20   = "123  "

  MOVE 123 TO BUFFER-X.         *>0x 31 32 33 20 20   = "123  "


01  BUFFER-9         PIC X(5)

  MOVE "123" TO BUFFER-X.      *>0x 30 30 31 32 33   =  00123

  MOVE 123 TO BUFFER-X.         *>0x 30 30 31 32 33    = 00123


01  BUFFER-COMP-3    PIC 9(07) COMP-3.

      MOVE 123 TO BUFFER-COMP-3.   >*0x 00 00 12 3F      MOVE +123 TO BUFFER-COMP-3.   >*0x 00 00 12 3F

      MOVE -123 TO BUFFER-COMP-3.   >*0x 00 00 12 3F 


01  BUFFER-COMP-3    PIC S9(07) COMP-3.

      MOVE "123" TO BUFFER-COMP-3.   >*0x 00 00 12 3C,   "123" is interpreted as 9(3)

      MOVE 123 TO BUFFER-COMP-3.      >*0x 00 00 12 3C

      MOVE +123 TO BUFFER-COMP-3.    >*0x 00 00 12 3C

      MOVE -123 TO BUFFER-COMP-3.    >*0x 00 00 12 3D 


01  BUFFER-COMP-5    PIC 9(07) COMP-5.

      MOVE 123 TO BUFFER-COMP-5.     >*0x 7B 00 00 00      MOVE +123 TO BUFFER-COMP-5.   >*0x 7B 00 00 00

      MOVE -123 TO BUFFER-COMP-5.    >*0x 85 FF FF FF


01  BUFFER-COMP-5    PIC S9(07) COMP-5.

      MOVE "123" TO BUFFER-COMP-5.  >*0x 7B 00 00 00,    "123" is interpreted as 9(3)

      MOVE 123 TO BUFFER-COMP-5.     >*0x 7B 00 00 00

      MOVE +123 TO BUFFER-COMP-5.   >*0x 7B 00 00 00

      MOVE -123 TO BUFFER-COMP-5.   >*0x 85 FF FF FF


== MOVE VALUE==


-- COMP-3 -> COMP-5 --

MOVE 123 TO BUFFER-COMP-3.

MOVE BUFFER-COMP-3 TO BUFFER-COMP-5.    *>0x 7B 00 00 00


-- COMP-5 -> COMP-3 --

MOVE 123 TO BUFFER-COMP-5.

MOVE BUFFER-COMP-5 TO BUFFER-COMP-3.    *>0x 00 00 12 3F


-- COMP-3/5 -> 9(...)

MOVE 123 TO BUFFER-COMP-5.

MOVE BUFFER-COMP-5 TO BUFFER-9.                 *>0x 30 30 31 32 33

MOVE 123 TO BUFFER-COMP-3.

MOVE BUFFER-COMP-3 TO BUFFER-9.                 *>0x 30 30 31 32 33


-- 9(...) -> COMP-3/5 --

MOVE 123 TO BUFFER-9.

MOVE BUFFER-9 TO BUFFER-COMP-3.                 *>0x 00 00 12 3F

MOVE BUFFER-9 TO BUFFER-COMP-5.                 *>0x 7B 00 00 00

-- COMP-3/5 -> X(...)

MOVE 123 TO BUFFER-COMP-5.

MOVE BUFFER-COMP-5 TO BUFFER-X.                 *>0x 30 30 30 30 31 ????

MOVE 123 TO BUFFER-COMP-3.

MOVE BUFFER-COMP-3 TO BUFFER-X.                 *>0x 30 30 30 30 31 ????



-- X(...) -> COMP-3/5 --

MOVE 123 TO BUFFER-X.

MOVE BUFFER-X TO BUFFER-COMP-3.                 *>0x 00 12 30 0F   ????

MOVE BUFFER-X TO BUFFER-COMP-5.                 *>0x 0C 30 00 00   ????


Summary

- Numeric data can be moved with each other, e.g., 9(...), COMP-3, COMP-5, but numeric cannot be moved with non-numeric data type, i.e., X(...).

- And numeric formatting string constant ("123") is interpreted as 9(3).



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值