yamamotoさんはじめまして。>加算した下位2byteのチェックサム値を算出する下位2byteだけを使うならunsigned shortで桁あふれが起きても問題ないと思います。どうせ上位は捨ててしまうのですから。ちゃんと4バイトで計算して下位2バイトを残すのであればunsigned short sum(2バイト)ではなくunsigned long sum(4バイト)で試してみてはいかがでしょう。