|
>0を1に、1を0にしたい場合の記述はいくつかあると思いますが
>補数をつかってする事ってできないのでしょうか?
1bit幅のビットフィールドを使う以外では,補数のみの処理では無理です。
例えば,_Bool invert (_Bool value)
{
return ~value;
} というコードを書いたとして,valueは0か1を持ちますが,
~1は最低でも0xFFFEという値を持つため,invertは常に1を返します。
>もっともシンプルで早い処理とわどういったものでしょうか?
速い処理は処理系や実行時のCPUに依存しますし,
何をシンプルとするかは個人の感性に依存します。
個人的には,論理値として扱っている場合は「0に等しくない」によって,
整数値として扱っている場合は「1から減算」によって,
それぞれ実現するのが「シンプル」だと思っています。
|