zig8/src/util.zig

25 lines
544 B
Zig

const std = @import("std");
const expect = std.testing.expect;
pub fn calc12bit(nib2: u4, nib3: u4, nib4: u4) u12 {
return @as(u12, nib2) << 8 | @as(u12, nib3) << 4 | @as(u12, nib4);
}
pub fn calc8bit(nib_a: u4, nib_b: u4) u8 {
return @as(u8, nib_a) << 4 | @as(u8, nib_b);
}
test "calc12bit works" {
const left: u12 = 0xABC;
const right: u12 = calc12bit(0xA, 0xB, 0xC);
expect(left == right);
}
test "calc8bit works" {
const left: u8 = 0xAB;
const right: u12 = calc8bit(0xA, 0xB);
expect(left == right);
}