MIKIさんの u16*(1/(1<<n)) = u16 / (1<<n) = u16 / 2^n = c においてu16 / (1<<n)とu16 / (1<<n)はプチコン3号では同値とは言えません。 後者は強制的に整数化されるのに対して前者は実数で求まります。 mohさんがシフト演算処理で悩んでいるとは思いにくいのですが分からないのは具体的にどの部分ですか?