2010-06-28

ビット演算

C++でのビット演算は、シフト演算子を除いては、実にあっけない定義のされ方をしている。~演算子は、オペランドの1の補数を返すとされているし(つまりはビット反転)、bitwise AND演算子は、オペランドのbitwise ANDを返すとされている。その他も、同様だ。

何も書かれていないということは、実装依存ということでいいのだろうか。たとえば、signedな整数型が2の補数であるかどうかは規定されていない。とすれば、ビット演算の結果がどうなるかなどは、具体的に定義できるわけがない。そういうことなのだろうか。

No comments:

Post a Comment

You can use some HTML elements, such as <b>, <i>, <a>, also, some characters need to be entity referenced such as <, > and & Your comment may need to be confirmed by blog author. Your comment will be published under GFDL 1.3 or later license with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.