64ビットのシフト演算
Posted: 2015年1月06日(火) 14:00
64ビットの変数をシフトするコードを教えてください。
uint64_t i;
i = (1 << 30);
i = (1 << 31);
i = (1 << 57);
上記のようなコードを書くと、
warning #68: integer conversion resulted in a change of sign
i = (1 << 31);
^
warning #63: shift count is too large
i = (1 << 57);
^
とエラー表示されてしまいます。
よろしくお願いします。
g++ (GCC) 4.1.2 20080704 (Red Hat 4.1.2-44)
uint64_t i;
i = (1 << 30);
i = (1 << 31);
i = (1 << 57);
上記のようなコードを書くと、
warning #68: integer conversion resulted in a change of sign
i = (1 << 31);
^
warning #63: shift count is too large
i = (1 << 57);
^
とエラー表示されてしまいます。
よろしくお願いします。
g++ (GCC) 4.1.2 20080704 (Red Hat 4.1.2-44)