ABAP Keyword Documentation → ABAP - Reference → Assignments → Assignment Rules → Conversion Rules for Elementary Data Objects → Numeric Source Fields → Source Field Type i, (b, s)
Conversion of Integer Numbers to Bytes
This example demonstrates the conversion of integers into byte fields and strings.
Other versions: 7.31 | 7.40 | 7.54
Source Code
DATA: int1 TYPE int1,
int2 TYPE int2,
int4 TYPE int4,
indx TYPE sy-index,
xstr TYPE xstring,
xfld TYPE x LENGTH 4.
DO 9 TIMES.
int1 = 2 ** ( sy-index - 1 ) - 1 .
xstr = int1.
xfld = int1.
WRITE: /(4) int1, xfld, xstr.
ENDDO.
BACK.
DO 15 TIMES.
indx = 16 - sy-index.
int2 = - 2 ** ( indx ) + 1.
xstr = int2.
xfld = int2.
WRITE: /20(8) int2, xfld, xstr.
ENDDO.
DO 16 TIMES.
int2 = 2 ** ( sy-index - 1 ) - 1 .
xstr = int2.
xfld = int2.
WRITE: /20(8) int2, xfld, xstr.
ENDDO.
BACK.
DO 31 TIMES.
indx = 32 - sy-index.
int4 = - 2 ** ( indx ) + 1.
xstr = int4.
xfld = int4.
WRITE: /50(12) int4, xfld, xstr.
ENDDO.
DO 32 TIMES.
int4 = 2 ** ( sy-index - 1 ) - 1 .
xstr = int4.
xfld = int4.
WRITE: /50(12) int4, xfld, xstr.
ENDDO.
Description
The program assigns numbers of the data types b
, s
,
and i
, which cover the entire value range, a byte field with the length 1 and a byte string and displays them in a classic list.
To calculate the numbers using powers of two, the
calculation type decfloat34
is forced as a results field (using a decimal floating point number). If the integer types are used directly as results fields, the calculation type is f
.
This example highlights the different lengths that can occur for these assignments to byte strings.
It also shows that, in the case of assignments of the type s
to x
, a field length of 4 bytes is required for negative numbers.