05.[SAP ABAP] ABAP中的运算符

05.SAP ABAP ABAP中的运算符

文章目录

  • [05.SAP ABAP ABAP中的运算符](#05.[SAP ABAP] ABAP中的运算符)

在ABAP(Advanced Business Application Programming)语言中,操作符(Operators)用于执行各种运算、包括算术、比较、逻辑、位操作等。

1.运算符分类

ABAP提供了一组丰富的运算符来操作变量。所有ABAP运算符分为四类:

  • 算术运算符
  • 比较运算符
  • 按位运算符
  • 字符串运算符

2.算术运算符

算术运算符在数学表达式中的使用方式与在代数中的使用方式相同。以下列表描述了算术运算符。

序号 算术运算符及说明
1 + (Addition) 在运算符两侧添加值。
2 - (Subtraction) 从左手操作数中减去右手操作数。
3 + (Multiplication) 将运算符两侧的值相乘。
4 / (Division) 将左手操作数除以右手操作数。
5 MOD (Modulus) 将左手操作数除以右手操作数并返回余数。
ABAP 复制代码
REPORT YS_GOYEER_01
DATA: A TYPE I VALUE 150,
B TYPE I VALUE 50,
Result TYPE I.
Result = A/B.
WRITE /Result.

3. 比较运算符

序号 比较运算符和描述
1 = Alternate form is EQ. 检查两个操作数的值是否相等,如果相等则条件为真。
2 <> Alternate form is NE. 检查两个操作数的值是否相等。如果值不相等,则条件成立。
3 > Alternate form is GT. 检查左操作数的值是否大于右操作数的值。如果是,则条件成立。
4 < Alternate form is LT.检查左操作数的值是否小于右操作数的值。如果是,则条件成立。
6 >= Alternate form is GE. 检查左操作数的值是否大于或等于右操作数的值。如果是,则条件成立。
7 <= Alternate form is LE. 检查左操作数的值是否小于或等于右操作数的值。如果是,则条件成立。
8 a1 BETWEEN a2 AND a3 (Interval test).检查 a1 是否位于 a2 和 a3 之间(含)。如果是,则条件成立。
9 IS INITIAL. 如果变量的内容未更改并且已自动为其分配初始值,则条件为真。
10 IS NOT INITIAL. 如果变量的内容已更改,则条件变为 true。

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

  • 如果一个字段是类型 I,则另一个字段将转换为类型 I。
  • 如果一个字段的类型为 P,则另一字段将转换为 P 类型。
  • 如果一个字段是D类型,则另一个字段转换为D类型。但C和N类型不转换,直接比较。T型的情况也类似。
  • 如果一个字段的类型为 N,另一个字段的类型为 C 或 X,则这两个字段都将转换为 P 类型。
  • 如果一个字段的类型为 C,另一个字段的类型为 X,则 X 类型将转换为 C 类型。

4. 比较运算符

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

序号 位运算符及说明
1 BIT-NOT 将十六进制数中的所有位翻转为相反值的一元运算符。
2 BIT-AND 该二元运算符使用布尔 AND 运算符逐位比较每个字段。
3 BIT-XOR 使用布尔 XOR(异或)运算符逐位比较每个字段的二元运算符。
4 BIT-OR 使用布尔 OR 运算符逐位比较每个字段的二元运算符。
相关推荐
yi0118 小时前
LeetCode 219:存在重复元素 II——哈希表记录“最近一次出现的位置”
数据结构·人工智能·笔记·python·算法·leetcode·哈希表
灯澜忆梦10 小时前
【面向对象编程C++】| 基础语法
java·c++·算法
小蒋观天下10 小时前
专项方案:大场景港口AI安防、多干扰环境下的算法调优与落地实操
人工智能·深度学习·算法·安全·机器学习·计算机视觉·ai大模型
Evand J11 小时前
【电机滤波例程5】渐消因子自适应扩展卡尔曼滤波(EKF),MATLAB。PMSM负载突变下的状态估计。附下载链接
算法·matlab
H.莓飛11 小时前
【数据结构】二叉树_OJ题
linux·开发语言·数据结构·算法
好想像大佬一样能够ak所有11 小时前
Leetcode35.搜索插入位置
数据结构·算法·leetcode
aqiu11111111 小时前
【C++算法打怪专栏】LeetCode 165. 比较版本号(双指针与字符串流法)
c++·算法·leetcode
黄金龙PLUS12 小时前
如何基于置换算法来设计对称加密算法
算法·网络安全·密码学·哈希算法·同态加密
不会就选b12 小时前
算法日常・每日刷题--<动态规划>14
算法
赛博守夜人12 小时前
跨境业务与出海合规之九:海外买量投放与营销虚假流量(Ad Fraud):跨国机房群控与归因欺诈识别算法
算法·安全