SYNOPSIS¶
string |
copy_bits | ( | string src, | string dest[, | int srcstart [, | int deststart [, | int copylen ]]] | ) | ¶
DESCRIPTION¶
Copy the bitrange [srcstart..srcstart+copylen]
from bitstring src
and copy it into the bitstring dest
starting at deststart
, overwriting the original bits at those positions.
The resulting combined string is returned, the input strings remain unaffected.
If srcstart
is not given, src
is copied from the start. If srcstart
is negative, it is counted from one past the last set bit in the string (ie. ‘-1’ will index the last set bit).
If deststart
is not given, dest
will be overwritten from the start. If deststart
is negative, it is counted from one past the last set bit in the string (ie. ‘-1’ will index the last set bit).
If copylen
is not given, it is assumed to be infinite, ie. the result will consist of dest
up to position deststart
, followed by the data copied from src
. If copylen
is negative, the function will copy the abs(copylen
) bits _before_ srcstart
in to the result.
None of the range limits can become negative.
USAGE¶
copy_bits(src, dest, 10) === src[10..]
copy_bits(src, dest, 10, 5) === dest[0..4] + src[10..]
copy_bits(src, dest, 10, 5, 3)
=== dest[0..4] + src[10..12] + dest[8..]
(The src[]/dest[] is just for explanatory purposes!)
HISTORY¶
- introduced (3.3.166)