25 lines
544 B
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);
|
|
}
|