16F48A Microcontroller, 155 bytes
MOVI s3, 09
A: INC s2
B: DEC s3
C: MOVI s3,s4
D: DEC s4
This particular microcontroller takes inputs in binary, starting at the top of the code and working its way down. It can only use 9 registers (s0 through s8, but cannot output s8) and each of those registers can store 8 bits - again, in binary.
The first section takes the input and sets some values for later use.
section A shifts the input right, effectively removing bytes at the end, until it reaches zero, all the while, s2 is keeping track of how many shifts have taken place.
Section B then takes the amount of right shifts from 9, to determine how many times to shift left until the front byte that is a 1 has been removed.
Section C actually shifts left, but saves the amount of shifts to be able to shift right again.
Finally, section D shifts it right, to move it to the original position, minus the first 1.