Chcesz połączyć dwie wartości binarne, aby uzyskać wartość 16 bitów i zapisać do pliku.
Pierwszy binarny ma stałą 6 bitów 000111
, drugi binarny zaczyna się od 0 i zwiększa o 1 dla każdej pętli.
#!/usr/bin/tclsh
set output_file "output.dat"
set data_number "10"
set output_fpt [open ./${output_file} w]
for {set x 0} {$x < $data_number} {incr x} {
set y [expr $x * (2 ** 22)]
binary scan [binary format I $y] B32 var
set data [binary format B6B12 000111 $var]
fconfigure $output_fpt -translation binary
puts -nonewline $output_fpt $data
}
close $output_fpt
Oczekiwany wynik: 1C00 1C01 1C02 ...