基本移动规则

在移动过程中,将数据从一种形式的内部表示转换为另一种形式,并在接收项中进行任何指定的编辑或隐含的取消编辑。 用于转换为字母数字字符或从字母数字字符进行转换的代码页是 在运行时适用于特定数据项的代码页。

以下规则概述了有效基本移动的执行。 当接收字段为:

字母:

  • 对齐和任何必要的空间填充或截断将按照对齐规则进行。
  • 如果发送项的大小大于接收项的大小,那么在填充接收项之后,将截断右侧的多余字符。

字母数字字母数字-已编辑:

  • 如果发送项是本地十进制整数项,那么发送数据将转换为使用 DISPLAY ,并将其视为移动到与发送项具有相同字符位置的类别字母数字的临时数据项。 生成的字母数字数据项将被视为发送项。
  • 根据对齐规则 ,进行对齐以及任何必要的空间填充或截断。
  • 如果发送项的大小大于接收项的大小,那么在填充接收项之后,将截断右侧的多余字符。
  • 如果初始发送项具有操作符号,那么将使用无符号值。 如果操作符号占用单独的字符,那么不会移动该字符,并且发送项的大小被视为比实际大小少一个字符。
  • 如果发送项是布尔值,那么会移动数据,就像发送项描述为长度为 1 的字母数字项一样。
  • 如果发送项是日期时间,那么会将日期时间项视为字母数字项,并遵循字母数字到字母数字移动的规则将日期时间项移至接收方。 如果发送日期时间项的 USAGE 为 PACKED-DECIMAL ,那么它将首先转换为 DISPLAY 的 USAGE。
布尔值:
  • 对于布尔值接收项,仅移动发送项的第一个字节。
  • 如果发送项是字母数字,那么将移动发送项的第一个字符。 字符 "0" 和 "1" 分别等同于布尔值 B "0" 和 B "1"。
  • 如果发送项为 ZERO ,那么会将其视为布尔文字 B "0"。

DBCS:

  • 如果发送项和接收项的大小不同,那么发送数据将在右边截断或在右边填充 DBCS 空格。 如果所需的填充不是与双字节字符一致的多个字符,那么将使用单字节字符 (例如,将 DBCS 数据项移至字母数字组项)。
日期/时间:
  • 如果发送项是日期时间,那么发送日期时间项的格式将首先转换为接收方的格式,然后移动。 如果发送项是时间戳记,而接收项是日期或时间项,那么仅将时间戳记项的日期或时间部分移至接收项。 如果发送项是日期或时间项,而接收项是时间戳记,那么仅替换时间戳记的日期或时间部分。
  • 如果发送项是数字,那么每个接收项数字转换说明符都将替换为来自发送项的数字,从最右边的转换说明符开始,从该转换说明符最右边的数字开始。 所有字母数字转换说明符都采用缺省值。
  • 如果发送项是数字编辑的,那么将取消编辑数字编辑的项。 然后,生成的数字值将移至日期时间项。
  • 如果发送项是字母数字或经过编辑的字母数字,那么接收日期时间项将视为字母数字项,并且将根据字母数字到字母数字移动的规则进行移动。

外部浮点:

  • 对于浮点发送项,浮点值将转换为接收外部浮点项的用途 (如果与发送项的表示不同)。
  • 对于其他发送项,将数字值视为该值已转换为内部浮点,然后转换为接收外部浮点项的用途。

内部浮点:

  • 当发送操作数的类别不是内部浮点时,发送项的数字值将转换为内部浮点格式。

本地本地编辑:

  • 如果发送项的表示不是本地字符,那么发送数据将转换为本地字符,并将其视为已移动到长度不导致截断或填充的本地类别的临时数据项。 生成的类别国家或区域数据项将被视为发送数据项。
  • 如果发送项的表示是国家字符,那么将使用发送数据而不进行转换。
  • 对齐和任何必要的空间填充或截断按照对齐规则进行。 程序员负责确保组成图形字符的多个编码单元不会被截断分割。
  • 如果发送项具有操作符号,那么将使用未签名的值。 如果操作符号占用单独的字符,那么不会移动该字符,并且发送项的大小被视为比实际大小少一个字符。

数字数字编辑:

  • 除非因编辑需要而替换零,否则将按照 “对齐规则” 所述,进行小数点对齐和必要的零填充。
  • 如果对接收项进行了签名,那么会将发送项的符号放置在接收项中,并进行任何必要的符号转换。 如果发送项未签名,那么将为接收项生成正操作符号。
  • 如果未对接收项进行签名,那么不会为接收项生成操作符号,并且将在移动中使用发送项的绝对值。
  • 当发送项的类别为字母数字,字母数字编辑,本地或本地编辑时,将移动数据,就像将发送项描述为无符号整数一样。
  • 当发送项为浮点时,数据将首先转换为二进制或内部十进制表示,然后移动。
  • 当接收项为数字编辑时,将按照与接收项相关联的图片字符串或 BLANK WHEN ZERO 子句定义进行编辑。
  • 当发送项为数字编辑时,编译器将取消编辑发送数据以建立数字编辑项的未编辑值 (此值可以签名)。 在移至接收数字或数字编辑的数据项时,将使用未编辑的数字值。

使用说明:

  1. 如果接收项属于类别字母数字,字母数字编辑,数字编辑,国家或国家或地区编辑,并且发送字段为数字,那么在发送项中使用图片符号 P 描述的任何数字位置都将被视为值为零。 每个 P 都计入发送项的大小。
  2. 如果接收项是数字,并且发送字段是字母数字文字,国家文字或 ALL 文字,那么该文字的所有字符都必须是数字字符。