Zig
Zig
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 Zig Downloads
const std = @import("std");
const chilkat = @import("chilkat");
pub fn main(init: std.process.Init) !void {
const alloc = init.arena.allocator();
const bd = try chilkat.BinData.init();
defer bd.deinit();
// The hex value of decimal 123456789 is 0x075BCD15
var x: i32 = 123456789;
// Appending little-endian causes bytes to be
// appended in the order 0x15, 0xCD, 0x5B, 0x07
var little_endian: bool = true;
try bd.appendInt4(x, little_endian);
std.debug.print("{s}\n", .{try bd.getEncoded(alloc, "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
little_endian = false;
bd.appendInt4(x, little_endian) catch {};
std.debug.print("{s}\n", .{try bd.getEncoded(alloc, "hex")});
// bd now contains: 15CD5B07075BCD15
// -------------------------------------------
// Now do the same thing with 16-bit integers
bd.clear() catch {};
// 1234 decimal = 0x04D2 hex.
x = 1234;
little_endian = true;
bd.appendInt2(x, little_endian) catch {};
std.debug.print("{s}\n", .{try bd.getEncoded(alloc, "hex")});
// Output is: D204
little_endian = false;
bd.appendInt2(x, little_endian) catch {};
std.debug.print("{s}\n", .{try bd.getEncoded(alloc, "hex")});
// Output is now: D20404D2
}