Sample code for 30+ languages & platforms
PureBasic

Append Big-Endian or Little-Endian Integers

Demonstrates how to append integers in big-endian or little-endian byte order to a BinData.

Note: This example requires Chilkat v9.5.0.77 or greater.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkBinData.pb"

Procedure ChilkatExample()

    success.i = 0

    bd.i = CkBinData::ckCreate()
    If bd.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    ; The hex value of decimal 123456789 is 0x075BCD15
    x.i = 123456789

    ; Appending little-endian causes bytes to be
    ; appended in the order 0x15, 0xCD, 0x5B, 0x07
    littleEndian.i = 1
    success = CkBinData::ckAppendInt4(bd,x,littleEndian)

    Debug CkBinData::ckGetEncoded(bd,"hex")
    ; Output is: 15CD5B07

    ; Now append the same integer in big-endian byte order.
    ; Appending bit-endian causes bytes to be
    ; appended in the order 0x07, 0x5B, 0xCD, 0x15
    littleEndian = 0
    CkBinData::ckAppendInt4(bd,x,littleEndian)

    Debug CkBinData::ckGetEncoded(bd,"hex")
    ; bd now contains: 15CD5B07075BCD15

    ; -------------------------------------------
    ; Now do the same thing with 16-bit integers
    CkBinData::ckClear(bd)

    ; 1234 decimal = 0x04D2 hex.
    x = 1234

    littleEndian = 1
    CkBinData::ckAppendInt2(bd,x,littleEndian)

    Debug CkBinData::ckGetEncoded(bd,"hex")
    ; Output is: D204

    littleEndian = 0
    CkBinData::ckAppendInt2(bd,x,littleEndian)

    Debug CkBinData::ckGetEncoded(bd,"hex")
    ; Output is now: D20404D2


    CkBinData::ckDispose(bd)


    ProcedureReturn
EndProcedure