2011-01-28 7 views
3

長い長いint型、マックOS X、Xcodeの3.2.5、フィールド幅

long long int x = 1<<38; 
NSLog(@"Hello, World!, %qi", x); 

私が得た "警告:左シフト・カウント> =種類の幅"、および値をゼロxのために。

長いlong int型の長さが8であるので、我々は63

I'seをシフトアップすることができるはずですいくつかの助けを困惑....となり翔」「preciate。

答えて

14

xではありません。1です。の整数の定数です。

代わりにこれを試してみてください:御馳走を作品

long long int x = 1LL << 38; 
+0

おかげで、!私は、通常の変換は行われないが、困惑している。それでも、哲学、カプセル化、移動はしません。:-) –

+1

@ジョン、通常の変換が行われます*右側の評価の後、 'long long int x =((long long int)( 1 << 38)) 'である。表現を検査し、その表現での使用法に対応する期待された型に従ってそれを評価することは、Cにはありません。 –

+0

はい、もちろん、ジェンス、そうです。どうもありがとう。 –

関連する問題