Идея правильная, но битовые маски - нет. Чтобы взять a7 надо действительно сделать & 0x80
. Но для a6 надо брать & 0x40
. Потом идут 0x20, 0x10, 0x08, 0x04, 0x02, 0x01.
Ваше 0x70 - это 0b01110000 - три бита вместо одного. Повторите 16-ричную систему счисления.