计算机只实现10与16进制的加减,这个相当于自己写一次36进制的加减
代码放出来,
data result(5) type c value ‘1ZZZ0’. "待加数字
data r type i value 0.
data C1(1) type c.
data I1 type i.
data X1 type x.
data unit type i value 4. "注意此处需要与result长度保持一致
FIELD-SYMBOLS : TYPE X. "定义一个16进行的字段符号用于转化
DO 300000 TIMES.
perform add.
write :/ result.
ENDDO.
form add.
while r = 0 and unit >= 0.
C1 = result+unit(1).
if C1 >= ‘0’ and C1 <= ‘9’.
move c1 to i1.
endif.
if C1 >= ‘A’ and C1 <= ‘Z’.
ASSIGN C1 TO CASTING. " 字符串转16进
move to i1. " 16进转10进
i1 = i1 - 55 .
endif.
perform addcore using i1 changing r.
if r <= 9.
result+unit(1) = r.
endif.
if r > 9.
DATA: x(4) TYPE x .
Data: t8(8) type c.
Data: t4(4) type c.
r = r + 55. " 10