使用以下逻辑运算符比较具有不同数据类型的两个数据对象:
|
<操作员> |
意义 |
|
EQ |
等于 |
|
= |
等于 |
|
NE |
不等于 |
|
<> |
不等于 |
|
>< |
不等于 |
|
LT |
少于 |
|
< |
少于 |
|
LE |
小于或等于 |
|
<= |
小于或等于 |
|
GT |
比...更棒 |
|
> |
比...更棒 |
|
GE |
大于或等于 |
|
>= |
大于或等于 |
两个操作数必须兼容或可转换。
比较基本数据类型
果操作数兼容,则不进行转换。比较过程如下: 数字字段(I、F 和 P 类型)和数字字符串(N 类型)按其数值进行比较。对于其他数据类型(C、D、T、X),比较从左到右进行。每个字段中不同的左起第一个字符确定哪个操作数更大。文本字段(类型 C)根据底层字符代码进行比较。在日期字段比较(类型 D)中,较新的日期大于较早的日期。在时间字段比较(类型 T)中,较晚的时间大于较早的时间。十六进制字段(类型 X)根据其字节值进行比较。
当您比较具有不同长度但相同数据类型的不兼容操作数时,比较如下: 压缩数字(类型 P)根据其数值进行比较,而不进行转换。对于其他长度不同的类型(C、N、X),较短的操作数在比较前转换为较长的操作数的长度。然后按如下方式填写:字符串(C 型)从右边用空格填充,数字字符串(N 型)从左边用零填充,十六进制字段从右边用十六进制零填充。
DATA: HEX1(3) TYPE X VALUE '34B7A1',
HEX2(1) TYPE X VALUE 'F0'.
IF HEX2 > HEX1.
...
ENDIF.
IF 语句中的逻辑表达式为真,因为 HEX2 的第一个字节大于 HEX1 的第一个字节。
文章详细阐述了如何使用逻辑运算符比较具有不同数据类型的数据对象,如数字、字符串、日期和十六进制字段。在比较过程中,兼容的数据类型按其值进行比较,不同长度的字段会进行填充以达到一致长度后再比较。例如,在比较十六进制字段时,第一个字节的值决定了比较结果。
2832

被折叠的 条评论
为什么被折叠?



