«Шестнадцатеричные смещения» являются просто обычными числами и не имеют специальных правил для вычитания. Вы получаете только другие результаты, потому что ваш ввод неверен:
у нас есть следующие шестнадцатеричные числа: 8A B7 00 00 FF с соответствующими им шестнадцатеричными смещениями: 0x7fffffffe066 0x7fffffffe067 0x7fffffffe068 0x7fffffffe069 0x7fffffffe070. Разница шестнадцатеричных смещений чисел 8A и FF составляет 0x04, потому что они различаются в 4 позициях.
В шестнадцатеричном формате сначала следует 0x9, затем 0xA, 0xB, 0xC, 0xD, 0xE, 0xF и только затем 0x10. Таким образом, если у вас есть 5 смежных байтов, а четвертый находится в 0x7FFF'FFFF'E069, следующий будет в 0x7FFF'FFFF ' E06A, а не 0x7FFF'FFFF'E070.
Другими словами, 0x…E070 - 0x…E066 = 0xA
это действительно правильный результат.