For amusement value, the Haskell equivalent is:
import Data.Bits
import Data.List(unfoldr)
f :: (Num a, Bits a) => a -> [a]
f = unfoldr $ \case
0 -> Nothing
n -> Just (n .&. 0xff, n `shift` 8)