言っておくが、decimal は仮数部は2進整数じゃねーぞ。10進のディジットをもってるんだよ。
ビットで表現されているかもしれないが
結局のところ a * 10^n + b * 10^(n-1) とかで格納されているんだ。
だから10進シフト演算も簡単にできるんだよ。
decimal じゃなくて、ちゃんと2進整数でなんとかしやがれよ?