const std = @import("std");
pub fn main() void {
const foo: u8 = 128;
std.debug.print("{}\n", .{foo}); // "128"
}
The above prints 128
as expected.
How can the value be printed as hexadecimal instead?
Put x
or X
inside the curly brackets.
There are additional options as well:
const std = @import("std");
pub fn main() void {
// Tested with Zig v0.10.1
const foo: u8 = 26;
std.debug.print("0x{x}\n", .{foo}); // "0x1a"
std.debug.print("0x{X}\n", .{foo}); // "0x1A"
const bar: u16 = 1;
std.debug.print("0x{x}\n", .{bar}); // "0x1"
std.debug.print("0x{x:2}\n", .{bar}); // "0x 1"
std.debug.print("0x{x:4}\n", .{bar}); // "0x 1"
std.debug.print("0x{x:0>4}\n", .{bar}); // "0x0001"
const baz: u16 = 43;
std.debug.print("0x{x:0>4}\n", .{baz}); // "0x002b"
std.debug.print("0x{X:0>8}\n", .{baz}); // "0x0000002B"
const qux: u32 = 0x1a2b3c;
std.debug.print("0x{X:0>2}\n", .{qux}); // "0x1A2B3C" (not cut off)
std.debug.print("0x{x:0>8}\n", .{qux}); // "0x001a2b3c"
}
You can read more about the placeholders at https://github.com/ziglang/zig/blob/master/lib/std/fmt.zig
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With