I have a bytearray, for example [0x6B, 0x6A, 0x6D, 0x6C].
For reasons out of my control the bytes are 'incorrect', and need to be fixed. The output I want is a bytearray like [0xAB, 0xCD].
So in my example, I want to ignore the '6' part of the byte. (6 is just an example, it can change).
I'm currently doing this by:

Looping over pairs of bytes
Converting the bytes to a hex string, like '6B6A'
Taking the 4th and 2nd character of the string to build 'AB'
Convert that 'AB' hex string to a byte

I already have a solution that works but it feels 'wrong' to use string manipulation with numerical values.
I'm not proficient with bitwise operators and I'm not sure if I can use bitwise operators, or something else entirely, to do this in a faster and/or more efficient way.
After a little trial and error:
To get 0x0B from 0x6B, I can do 0x6B & 0x0F.
To get 0xA0 from 0x6A, I can do the same as above, and then result << 4.
Then I can add these values together to produce 0xAB.
How to clean/fix these bytes without string operations?