俺ならこれかな。試してないが。。
return n & 0x800 ? n | 0xf000 : n;