5.25 · exercise
Nibbles trade places
A nibble is four bits: half a byte, and exactly one hex digit. Swapping the two nibbles of 0xa7 gives 0x7a.
The starter reads a value typed in hex into value_r. Keep only its low byte in byte_r, then build swap_r from byte_r with the two nibbles traded. lsr by 4 brings the high nibble down, lsl by 4 moves the low nibble up, and orr joins the halves. After the left shift the old high nibble sits above bit 7, so mask it away with and to keep the answer inside one byte.
With the sample input a7 the program prints 0xa7 -> 0x7a.
What is checked
0xa7 -> 0x7afor the sample input- the program exits cleanly
- the nibbles move with
lslandlsr - the right answer for other values, including 0,
ff, and values wider than one byte
specification
stdina7
stdoutprints the right output
exitexits with the right code
sourceuses
lslsourceuses
lsrhiddenright output and exit code on 6 more inputs you do not see
We run your program on the input above and on the hidden ones, and compare what it does. Nothing is matched against a stored solution.