chsvlib
chsv helper source code

◆ memdecr_BE_inplace()

bool Chusov::Memory::memdecr_BE_inplace ( void *  pData,
std::size_t  cbData 
)
noexcept

Decrements an arbitrary precision integer specified by a vector of bytes in the Big-Endian order in place and returns the borrow bit.

Parameters
[in,out]pDataA pointer to a buffer which contains the integer to decrement. On output, the buffer holds the result of the operation.
cbDataSize of the integer in bytes.
Returns
true if the function has borrowed from the digit cbData, i.e. if the value of the input integer is zero. Otherwise, the return value is false.

The function considers the input vector to specify the integer in the Big-Endian byte order. That is, given that \(V_X = \{x_0, \dots, x_n\}\) is the input vector pointed to by pSrc, such that \(x_0\) is the first byte in memory of the vector, \(x_n\) is the last byte and n = cbData - 1, the input value for the operation is \(X = \sum_{i=0}^{n}x_{n - i}\cdot b^i\) where b = 2CHAR_BIT is a number of values that can be represented with one byte. To decrement Little-Endian integers use memdecr_LE_inplace.

To produce the result in a separate buffer leaving the original integer unchanged use memdecr_BE_copy or memdecr_BE.

See also
memdecr_LE_inplace;
memdecr_BE_copy;
memdecr_BE;
memincr_BE;
memadd_BE;
memsub_BE;
memmul_BE;
memdiv_BE.