■ [PG] char 型を 30bit ビットシフトする C言語の話です。プログラミングのお話。 ここで言う char 型は 8bit の型定義としますが、これを 30 bit シフトするというのは問題ないのかどうか、という話。まあ仕事の最中にそんな記述を見て「これなんでコンパイルエラーにならんの?」となったのが発端なのですが。 C言語においてのビットシフトとは、まあ下みたいに書く訳です。 char x = 1; x = x << 2; char 型の変数 x (初期値1)を2bit分左にシフトした値にする、の意味です。結果的に x = 4 になるわけですが、まあその後の値はさておき。 ここでは、以下の式は許されるのかという話。 char x = 1; x = x << 30; ここで x はいくつになるかというと、 x = 0 です。 char 型は 8bit なので、当然ながらビット