Вот очень быстрый способ сделать эту операцию:
a = b * 0.99609375;
Это похоже на то, что вы хотите, но это намного быстрее.
a = b;
a -= b>>8;
Или даже быстрее, используя хитрость, которая работает только на системах с прямым порядком байтов, таких как PIC.
a = b;
a -= *((int8*)((&b)+1));
С макушки головы это сводится к следующему ассемблеру на PIC18:
; a = b
MOVFF 0xc4, 0xc2
NOP
MOVFF 0xc5, 0xc3
NOP
; a -= *((int8*)((&b)+1));
MOVF 0xc5, w
SUBWF 0xc2, f
BTFSC STATUS, C
DECF 0xc