の場合、C での評価の順序はx<<y>>z
? (x<<y)>>z
左から右への結合性のためですか?
編集 標準がそれについて何を伝えているかを知る必要があり、特定のコンパイラの検査によって何が起こっているかを推測する必要はありません。
の場合、C での評価の順序はx<<y>>z
? (x<<y)>>z
左から右への結合性のためですか?
編集 標準がそれについて何を伝えているかを知る必要があり、特定のコンパイラの検査によって何が起こっているかを推測する必要はありません。
はい、>>
と<<
は連想のままで、同じ優先順位であるため、x << y >> z
と同等(x << y) >> z
です。
6.5.7 ビットシフト演算子 構文 1 シフト式: 加算式 シフト式<<加算式 シフト式>>加算式
次のように、構文は両方の演算子が左結合であることを示します。
x << y >> z | | | | | | | | +-------- + ------+ | | | | | | | | | V | Ⅴ シフト式 >> 加算式
はい、 << と >> 演算子は同じ優先順位を持ち、左結合であるため、あなたは正しいです。
<<
とは>>
同じレベルにあり、方向は左から右です。
そうなる(x<<y)>>z
詳細については.. http://msdn.microsoft.com/en-us/library/2bxt6kc4%28v=vs.71%29.aspx
はい、そうですがx<<y
、y>>z
コンパイラがx<<y>>z
. 私はずっとビットごとの操作を使用していませんが、よく覚えていれば、それは私が言ったことです。お役に立てば幸いです。