Performance Improvement in BITBYTE_TO_INT Conversion

- Changed: Reduced calculations and processing required to convert a bit string into an integer value to a minimum.
This commit is contained in:
Michael Käsemann 2018-07-09 11:07:33 +02:00
parent bc432de28d
commit 3294474243

View File

@ -50,19 +50,34 @@ CLASS ZCL_ABAPGIT_CONVERT IMPLEMENTATION.
METHOD bitbyte_to_int.
DATA: lv_bits TYPE string.
DATA: bitbyte TYPE string,
len TYPE i,
offset TYPE i.
lv_bits = iv_bits.
bitbyte = iv_bits.
SHIFT bitbyte LEFT DELETING LEADING '0 '.
len = strlen( bitbyte ).
offset = len - 1.
rv_int = 0.
WHILE strlen( lv_bits ) > 0.
rv_int = rv_int * 2.
IF lv_bits(1) = '1'.
rv_int = rv_int + 1.
DO len TIMES.
IF sy-index = 1.
"Intialize
CASE bitbyte+offset(1).
WHEN '1'. rv_int = 1.
ENDCASE.
ELSE.
CASE bitbyte+offset(1).
WHEN '1'. rv_int = rv_int + ( 2 ** ( sy-index - 1 ) ).
ENDCASE.
ENDIF.
lv_bits = lv_bits+1.
ENDWHILE.
offset = offset - 1. "Move Cursor
ENDDO.
ENDMETHOD. "bitbyte_to_int