Sample code for 30+ languages & platforms
Unicode C

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 Unicode C Downloads

Unicode C
#include <C_CkBinDataW.h>

void ChilkatSample(void)
    {
    BOOL success;
    HCkBinDataW bd;
    int x;
    BOOL littleEndian;

    success = FALSE;

    bd = CkBinDataW_Create();

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

    //  Appending little-endian causes bytes to be
    //  appended in the order 0x15, 0xCD, 0x5B, 0x07
    littleEndian = TRUE;
    success = CkBinDataW_AppendInt4(bd,x,littleEndian);

    wprintf(L"%s\n",CkBinDataW_getEncoded(bd,L"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 = FALSE;
    CkBinDataW_AppendInt4(bd,x,littleEndian);

    wprintf(L"%s\n",CkBinDataW_getEncoded(bd,L"hex"));
    //  bd now contains: 15CD5B07075BCD15

    //  -------------------------------------------
    //  Now do the same thing with 16-bit integers
    CkBinDataW_Clear(bd);

    //  1234 decimal = 0x04D2 hex.
    x = 1234;

    littleEndian = TRUE;
    CkBinDataW_AppendInt2(bd,x,littleEndian);

    wprintf(L"%s\n",CkBinDataW_getEncoded(bd,L"hex"));
    //  Output is: D204

    littleEndian = FALSE;
    CkBinDataW_AppendInt2(bd,x,littleEndian);

    wprintf(L"%s\n",CkBinDataW_getEncoded(bd,L"hex"));
    //  Output is now: D20404D2


    CkBinDataW_Dispose(bd);

    }