Converts the leftmost four bytes of an array to a 32-bit integer.
Public Declare Function CNV_NumFromBytes Lib "diCrPKI.dll" (ByRef lpInput As Byte, ByVal nBytes As Long, ByVal nOptions As Long) As Long
nRet = CNV_NumFromBytes(lpInput(0), nBytes, nOptions)
long __stdcall CNV_NumFromBytes(const unsigned char *lpInput, long nBytes, long nOptions);
Decoded integer value, or zero on error.
Public Function cnvNumFromBytes
(lpInput() As Byte, Optional nOptions As Long = 0) As Long
static uint32_t dipki::Cnv::NumFromBytes (const bvec_t &bv, EndianNess endn=EndianNess::BigEndian)
static Cnv.num_from_bytes(data, endn=EndianNess.BIG_ENDIAN)
An array shorter than 4 bytes will be padded on the right with zeros.
Dim abData() As Byte Dim nBytes As Long Dim nRet As Long abData = cnvBytesFromHexStr("DEADBEEF") nBytes = UBound(abData) + 1 Debug.Print "INPUT: " & cnvHexStrFromBytes(abData) ' Default big-endian order nRet = CNV_NumFromBytes(abData(0), nBytes, 0) Debug.Print "CNV_NumFromBytes(BE)=0x" & Hex(nRet) ' Little-endian order nRet = CNV_NumFromBytes(abData(0), nBytes, PKI_CNV_LITTLE_ENDIAN) Debug.Print "CNV_NumFromBytes(LE)=0x" & Hex(nRet) ' Input shorter than 4 bytes is padded on the right with zeros nRet = CNV_NumFromBytes(abData(0), 3, PKI_CNV_BIG_ENDIAN) Debug.Print "CNV_NumFromBytes(BE)=0x" & Hex(nRet) nRet = CNV_NumFromBytes(abData(0), 3, PKI_CNV_LITTLE_ENDIAN) Debug.Print "CNV_NumFromBytes(LE)=0x" & Hex(nRet)
INPUT: DEADBEEF CNV_NumFromBytes(BE)=0xDEADBEEF CNV_NumFromBytes(LE)=0xEFBEADDE CNV_NumFromBytes(BE)=0xDEADBE00 CNV_NumFromBytes(LE)=0xBEADDE