Cのビットシフトってsignedの値にやった場合は算術シフトに、unsignedの値にやった場合は論理シフトになるんでしたっけ?