Odin SolutionsOdin Solutions
⚙️
ABCD Message
Week 21, 2026
All SolutionsScan input for bcd, convert bcd to a char | greenya | Odin Solutions
package main
import "core:fmt"
import "core:strings"
// INPUT := #load("warehouse.txt", string)
INPUT := #load("input.txt", string)
BCD :: [dynamic; 4] byte
main :: proc () {
fmt.println("Input:", INPUT)
result := strings.builder_make()
defer strings.builder_destroy(&result)
bcd: BCD
for r in INPUT do if r=='0' || r=='1' {
append(&bcd, byte(r-'0'))
if len(bcd) == 4 {
char := bcd_to_char(bcd)
strings.write_byte(&result, char)
clear(&bcd)
}
}
fmt.println("Result:", strings.to_string(result))
}
bcd_to_char :: proc (b: BCD) -> byte {
n := b[0]*8 + b[1]*4 + b[2]*2 + b[3]
switch {
case n <= 9 : return '0' + n
case n == 15: return '.'
case : return '?'
}
}