Win7 64+GCC(on MinGW)で・・・・

これはゼロになる
unsigned char c;
uint64_t i;

c = 0xff;
i = c<<63;
-----------------------------------------
これならMSBにビットが残る
unsigned char c;
uint64_t i;

c = 0xff;
i = (uint64_t)c<<63;
-----------------------------------------


暗黙の型変換でやってくれるのは、int(機種依存の?)まで?




それはそうと、
:-] ←ドヤ顔