SAP ABAP 运算符

ABAP提供了一组丰富的运算符来操纵变量。 所有ABAP运算符分为四类 :
01-算数运算符
02-比较运算符
03-按位运算符
04-字符串运算符

01-算数运算符

算术运算符在数学表达式中使用的方式与在代数中使用的方式相同。 以下列表描述了算术运算符。 假设整数变量A保持20并且变量B保持40。

算数运算符的例子:

**算术运算符
REPORT zhy01_hy101_20220617_01 NO STANDARD PAGE HEADING.
DATA: A TYPE I VALUE 16,
      B TYPE I VALUE 5,
      Result_1 TYPE I,
      Result_2 TYPE I.
      Result_1 =  A / B.
      Result_2 =  A mod B.
WRITE: / 'Result_1 =', Result_1 LEFT-JUSTIFIED,
       / 'Result_2 =', Result_2 LEFT-JUSTIFIED.

02-比较运算符

不同操作数的各种类型的比较运算符

注意 - 如果变量的数据类型或长度不匹配,则执行自动转换。 在比较不同数据类型的两个值时,对一个或两个值执行自动类型调整。 转换类型由数据类型和数据类型的首选顺序决定。

以下是自动转化的顺序 :
• 如果一个字段是类型I,则另一个字段转换为类型I.
• 如果一个字段是P类型,则另一个字段转换为类型P.
• 如果一个字段是类型D,则另一个字段转换为类型D.但是C和N类型不转换,它们直接比较。 类似于类型T的情况。
• 如果一个字段是类型N,另一个是类型C或X,则两个字段都转换为类型P.
• 如果一个字段是类型C,另一个是类型X,则X类型转换为类型C.

比较运算符例1:

**比较运算符例1:
REPORT zhy01_hy101_20220617_01 NO STANDARD PAGE HEADING.
DATA: A TYPE I VALUE 115,
      B TYPE I VALUE 119.
      IF A LT B."IF A < B.
      WRITE: / 'A is less than B'.
      ENDIF.
如果非小于的话则不输出结果

比较运算符例1:

**比较运算符例2:
REPORT zhy01_hy101_20220617_01 NO STANDARD PAGE HEADING.
DATA: A TYPE I.
      IF A IS INITIAL.
      WRITE: / 'A is assigned'.
      ENDIF.

03按位运算符

ABAP还提供了一系列可以用于构建布尔代数表达式的逐位逻辑运算符。 位运算符可以使用括号等组合在复杂表达式中。

例如,以下是真值表,其示出了当对包含在字段A和字段B中的两个比特值应用布尔AND,OR或XOR运算符时生成的值。

真值表

说明:
1.(BIT-NOT)非门:逆转输入的高低状态。逻辑函数表示为F=A’。
2.和(BIT-AND)与门:所有输入为高时,才会有输出高。逻辑函数表示为F=A*B。
3.要么(BIT-OR)或门:所有输入为低时,才会有输出低。逻辑函数表示为F= A + B。
4.XOR(BIT-XOR)或非门:所有输入为低时,才会有输出高。逻辑函数表示为F=(A + B)’。

参考:
常见的逻辑门真值表:
七种常见的逻辑门真值表稻草人2468的博客-CSDN博客与或非门真值表

04-字符串运算符

例子:

**字符串运算符:
REPORT zhy01_hy101_20220617_01 NO STANDARD PAGE HEADING.
DATA: P(10) TYPE C VALUE 'APPLE',
      Q(10) TYPE C VALUE 'CHAIR'.
      IF P CA Q.
      WRITE: / 'P contains at least one character of Q'.
      ENDIF.

你可能感兴趣的:(SAP ABAP 运算符)