- ベストアンサー
!(否定)演算子について
!演算子の動きが知りたいです。 !0なら1になる !1なら0になる のは解るのですが !3など数値を入れた場合、0になるのはどの様な内部処理なのでしょうか? ビット演算 0011 ↓ 0 or 0 or 1 or 1 ↓ 1 ↓ !1 ↓ 0 上記と考えているのですが、アドバイスよろしくお願いします。
- みんなの回答 (6)
- 専門家の回答
関連するQ&A
- チェックボックスをビット演算子で処理したい
チェックボックスをビット演算子で処理したいのですが、DBに格納した数値をビット演算子で処理する方法がわかりません。 たとえば、北海道から沖縄までのチェックボックスを作成してそれぞれに 1,2,4,8,16,32・・・とvalueを持たせます。 DBには数値の和を入れておきます。 その値を分解してチェックボックスをcheckedにしたいです。 ちょっとわからなくなってしまって。 教えてください、。よろしくお願いします。
- ベストアンサー
- PHP
- 演算子を使わない演算
はじめまして、ヨロシクお願いします。 早速ですが、私は今「入力された数値を7で割った値を表示しろ」という問題に取り組んでいます。これには次の条件があります。 (1)演算子の/を使ってはいけない。 (2)繰り返し処理を使ってはならない。 という縛りがある上で計算をしたいと思っているのですが、なかなかうまくいきません。何かいい方法はないでしょうか。 よろしくお願いします。
- ベストアンサー
- Java
- ビット演算を学びたい
a &= 2; a |= 2; a ^= 2; a ~= 2; a <<=2; a >>=2; みたいな感じでビット演算が使われているソースを 良く見るのですが、いまいちビット演算で何をしているのかが 分かりません。 参考書などには文字通りビットをいじるような旨のことが書いてあります。 (こちらにも同じようなことが http://www9.plala.or.jp/sgwr-t/c/sec14.html) こういうので何となくは分かるのですが、 実際にこれを何に使えるか、実践ではどのように使うのかが なかなか見えてきません。 このビット演算を私のような者でも実際のプログラムで使いこなせるように なれるようなサイトや書籍の提示、あるいはサンプルのプログラムなどで ご指導いただけたらと思います。
- ベストアンサー
- C・C++・C#
- 浮動小数点演算と固定小数点演算の使い分けについて
解説書などには、「浮動小数点は3.14E0の形」や「固定小数点は3.14」などと説明されています。 では、例えば、ごく一般的な32ビットマシンで「3.14 * 45.6」という命令を書いたときに演算されるのは浮動小数点演算なのか、固定小数点演算なのかがわかりません。例えばIntelのx86CPUは、内部にFPUを持っているそうですが、この場合は「3.14 * 45.6」は、内部では必ず浮動小数点演算になっているということなのでしょうか? 「3.14 * 45.6」を「3.14E0 * 4.56E1」と書いた場合にしか浮動小数点演算されないということではないと思っているのですが、実際の浮動小数点演算と固定小数点演算の内部的な切り替えがわかりません。 理解が足りなくて、おかしな質問になっていましたら、その点もご指摘いただければうれしいです。
- ベストアンサー
- その他([技術者向] コンピューター)
- 論理演算
ビットの判定するために次のコードをしました。 if ( A And 2 = 2 ) or ( A And 4 = 4 ) Then ~ Aの論理積の結果が2か4ならばThen以下の処理の中に入っていってもらいたいのです。 ところが上記のコードでは演算式になってしまっているようで、 結果的にAが0以外ならば全てThenに入ってしまうザルコードになってしまいました。 散々つつきまわって以下のように( ) で括ればいいことが分かりました。 if (( A And 2 ) = 2 ) or (( A And 4 ) = 4 ) Then ~ ( )で括ればいいというのは分かりましたが、理由はさっぱり分かりません。 一番最初に書いたコードでも正常に見えるからです。 納得がいきませんので、どなたか説明よろしくお願い致します。
- ベストアンサー
- Visual Basic
- 2進数データのビット演算
vb.netにて 0と1からなる2進数で記録した2つの値をビット演算したいと思っております。 Convert.ToInt32("1111101000", 2) などを使って、一度数値に変換して演算すれば、計算可能なことはわかったのですが、計算に利用したいデータが2進数で1000桁ほどあります。桁数が多い場合、Convert.ToInt32ではエラーが出て実行できません。 無数に長い2進数のデータをビット演算するにはどうすればよろしいでしょうか。 ご存知の方、ご教授よろしくお願いいたします。
- ベストアンサー
- Visual Basic
- 論理演算子について
論理演算に使う「or」なんですが、制御構文ifと組み合わせて以下のような使い方をしてみました。 $data01='aaa'; $data02='あああ'; $data03='test'; if ($data01 =~ m/aaa/ or $data02 =~ m/あああ/ or &data03 =~ m/test/){ 特定の処理; } このorによる論理演算ははどこまでできるのでしょうか? 上のスクリプトは問題なく動いていますが、ちょっと不安です。 専門書を見ても、orによる論理演算は<条件1 or 条件2>としか書いてなく <条件1 or 条件2 or 条件3 or ・・・>と書いても大丈夫なのでしょうか? いくつもの比較はorを使わないほうがよろしいとは思うんですが、このorが便利なのでこれで済むなら使いたいと思います。
- 締切済み
- Perl
- 論理演算、ビット演算
C言語仕様上、真/偽は(Not0/0)であることは理解しています。また、処理順序から、論理演算とビット演算では評価対象の範囲が違うことも知っているつもりです。 その上で質問させていただきます。 お手数ですが、お解りになる方は教えていただけると助かります。 例えば、 i=0,j=0である場合 ( (i == 0) && (j == 0) )は真であると思いますが、 ( (i == 0) & (j == 0) )は規定されているでしょうか。 また、( (i == 0) | (j == 0) )は真となることが(理論上)保証されているように思えますが、問題ないでしょうか。 以上、よろしくお願いいたします。
- ベストアンサー
- C・C++・C#
- php と C# の ビット演算
PHPでビット演算をしていますが、 PHPでたとえば、 c = a >> b でビット演算した値と、 C#で演算した値と aの値を大きくした場合、 4000000000以上? は結果が違ってきます。 C#とPHPではビット演算のアルゴリズムが違うのでしょうか? よろしくお願いします。
- ベストアンサー
- PHP
- 演算子について
2進数の文字列を数値に変換する処理の中で、 for(i= 0; binary[i] != 0; i++) { value <<= 1; value |= binary[i] - '0'; } value <<= 1; はvalueを左へ1ビットシフトするということがわかりますが、 次の value |= binary[i] - '0'; は、 書き直すと、 value = value | binary[i] - '0'; となり、『|』ではvalueとbianary[i]をORすることがわかりますが、その次の『 - '0' 』では何を行っているのかよくわかりません。 どなたかお解りの方、解説のほうお願いします。
- ベストアンサー
- C・C++・C#
- digitalTVBOXバージョン?(1.01.1002.1)でdigitalTVBOXを何回か再ダウンロードをしてるのですが、「digitalTVBOXを起動出来ません。キャプチャーボードの接続とドライバーのインストールが正しく行われているか確認してください」となります。
- 説明書の機種とOSが一致したものをダウンロードしないとダメですか?
- 他に方法がありましたらお願いします。
お礼
アドバイスありがとうございます。 「0でない値」の部分が非常に参考になりました。 そう考えるとしっくりきます。 非常に学習になりました。