if 0 {I've come across skepticism about [Tcl]'s facility for bit manipulation one too many times. While [RS]'s usual ''tours de force'' such as "[Playing with bits]" and "[Big bitstring operations]" show how '''good''' Tcl can be at bit manipulation, this page has a far more limited ambition: simply to help hardware- or [C]-oriented developers to feel comfortable working on low-level data in a higher-level language.} # Let's experiment: one model for "low-level data" is a byte array, or # byte sequence. A sequence of eight-bit values is often the manifestation # of information received from a physical device through a serial port, or # from a remote host through a network connection. Start, then, with # sample data, a sequence of seven eight-bit quantities. set sample \x63\x77\x54\x00\x83\x41\x42 # While they're all there, only some are displayable. puts $sample # Let's make a utility that'll show the content of a byte # sequence as hex data: proc show byte_sequence { binary scan $byte_sequence H* x puts [split $x {}] }