There is more than one way to do this.
Note that you have 16 values (0-9, A-F). These have a hex representation as characters F0-F9, C1-C6, and also a hex representation when "packed" in a byte - or two, one when on the "left" and one when on the right - ?0-?9, ?A-?F and 0?-9?, A?-F?.
So, at the heart, there can all come down to a simple 1-to-1 relationship.
Then you have some technical stuff, like you can't access a single byte as a binary value in Cobol.
01 a-nice-name COMP-5 PIC 9(4).
01 FILLER REDEFINES a-nice-name,
05 FILLER PIC X.
05 another-nice-name-for-this-byte PIC X.