• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:排他的論理和について)

PHPで排他的論理和を使うと挙動が異なる理由は?

nezumi0t0k0の回答

  • ベストアンサー
回答No.2

CPUが32ビットとか64ビットとかいう話を耳にしますよね。 要するに、幾らでも大きな数を表現出来るわけではないということです。 どこまで表現出来るかはそのマシーン次第。 最近は64ビットも多いけど、普通は32ビット。 というわけで、No.1にも書きましたが、 ご質問のパターンは、多くの場合、正しく計算できません。 それについてはこのあたりに書いてあるようです。 http://www.php.net/manual/ja/language.types.integer.php でもって、本当にそのような大きな数の計算を行いたいのであれば、 http://www.php.net/manual/ja/ref.bc.php を使えとも書いてありますね。

fedorars
質問者

お礼

お礼が遅くなりました。 大変申し訳ございません。 CPUのビット数まで考慮する必要があったんですね。 普段しない計算だったので、大変勉強になりました。 解決はしていませんが・・・ これからも、調べてみます。 ありがとうございました。

関連するQ&A

  • (論理咳,論理和,排他的論理和)基本情報処理の問題

    今基本情報処理の勉強をしているのですが、 論理咳,論理和,排他的論理和の問題で、いまいちわからない部分がありますので教えてください。 【問題】 ビット数が等しい任意のビット列aとbに対して、等式=bと同じことを表すものはどれか。  ここで、AND,OR,XORはそれぞれ,ビットごとの論理咳,論理和,排他的論理和を表す。 ア a AND b = 00…0  イ a OR b = 11…1 ウ a XOR b = 00…0 エ a XOR b = 11…1 解答  「ウ a XOR b = 00…0」 となっているのですが  この質問に出ている 「00…0」 or 「11…1」は何を表しているのでしょうか?    「00…0」 = 全てのビットが0になる  「11…1」 = 全てのビットが1になる  という意味を指しているのでしょうか?

  • 排他的論理和の問題

    以下の問題の回答を読んでも意味がわかりません。どなたか、もっと詳しく説明お願いします。 【問】 任意の8ビットのデータXと、8ビットのデータ00001111をビット毎に排他的論理和をとった結果はどれか。ここで、各1ビットのデータAとデータBの排他的論理和をとったCの値は次のように表される。また、データの左方を上位、右方を下位と呼ぶ。 A B C ‐‐‐‐‐‐‐‐ 0 0 0 0 1 1 1 0 1 1 1 0 【選択肢】 ア、Xの上位4ビットすべての0、1が反転し、下位4ビットは全て1になる。 イ、Xの上位4ビットすべての0、1が反転し、下位4ビットはそのまま残る。 ウ、Xの上位4ビットはすべて0で、下位4ビットすべての0、1が反転する。 エ、Xの上位4ビットはそのままで、下位4ビットすべての0、1が反転する。 【解】 エ 【解説】 問題文中の表からもわかるように、データBのある1桁の値が0だった場合、データAの値はそのままです。一方で、データBのある1桁の値が1であると、データAの値は必ず反転します。データBのビット列は、00001111ですから、データAの上位4ビットはそのまま、下位4ビットは全て反転すると考えられます。 解説の「~データAの値は必ず反転します」までは理解できるのですが、なんでいきなりデータBのビット列が00001111なのか意味が分かりません。これは表から読み取るもの?それともこの問題でデータBがデータXということを示しているのでしょうか。 情報系素人なもので、助言よろしくお願い致します!

  • 排他的論理和

    今日論理回路の実験をしてて思ったのですが、、、、排他的論理和(EOR)って ビット計算の結果だけなのでしょうか?ANDなら掛け算と繰り上がりとか桁上がりの数以外にどんなことにつかわれるのでしょうか? もしかしてそれだけでしょうか?

  • 排他的論理和

    排他的論理和を2回演算すると、元に戻ることを下記の例で確認しなさい。 回答は下記の<2進数>と<16進数>の部分を書き換えなさい。 (1)平文と鍵から暗号文を作りなさい 【平文】  ABC  <16進数> <2進数> 【鍵】   XYZ  <16進数> <2進数>  ---------------------------- 【暗号文】    <16進数> <2進数> (2)暗号文と鍵から平文が復元できることを示しなさい 【暗号文】    <2進数>  <16進数> 【鍵】   XYZ  <2進数>  <16進数> ---------------------------- 【平文】  ABC  <2進数>  <16進数> ヒント:(1)は、平文と鍵を16進数と2進数に書き直し、2進数で排他的論理和を計算し、それを16進数に直せば暗号文を定義できる。平文、鍵、暗号文はどれも16進数6桁になる。 (2)も同様に暗号文と鍵から平文を生成する。 最後に(1)の平文と(2)の平分を比較してみなさい。違っていればもう一度見直しなさい。 どなたか教えてください。 さっぱりわからないです。

  • どなたか、この問題を解いて教えてください。。

    基本情報技術者試験の勉強中なのですが、この例題が、解説を読んでもわかりません。項目は論理演算です。どなたか、教えていただけないでしょうか? 【問題】 8ビットのデータの下位2ビットを変化させずに、上位6ビットのすべてを反転させる論理演算はどれか? ア 16進数03と排他的論理和をとる イ 16進数03と論理和をとる ウ 16進数FCと排他的論理和をとる エ 16進数FCと論理和をとる 【答え:ウ】 【解説】16進数FCは11111100です。排他的論理和を取ると、上位6ビットは反転され、下位2ビットはそのままとりだせます。 と、書いてあります。2進数に変換するまではわかるのですが、排他的論理和を取るというのは、どういうことなのでしょうか? すみませんが、宜しくお願いします。

  • 真理値表を用いた否定・論理積、和・排他的論理和・含意・等値を勉強してるんですが

    もし論理Aと理論Bがある場合、考えられ得る論理演算はA=0,1の2通りでA,Bの組み合わせが4通りですか?

  • 真理値表を用いた否定・論理積、和・排他的論理和・含意・等値を勉強してるんですが

    もし論理Aと理論Bがある場合、考えられ得る論理演算は全部で何通りあって、その真理値表がわからないんですが教えてください!真理値表の演算式も合わせてお願いします!

  • 論理演算について質問

    int a=1,b=0,c=0のとき a==1 && b==0 || (a==1 && b==0) a==1 && b==0 &&c==0 && b==0 の2つの論理式あったとします 質問1:&&や||は、その間にある2つの関係式や2つの関係式の論理演算の結果同士などを論理演算するものだと思います。この認識で正しいですか? 質問2:上記の論理式の後者a==1 && b==0 &&c==0 && b==0について、trueになるプロセスの認識は以下で正しいですか? a==1 && b==0 はtrue       ↓  左から2番目の&&は、左の論理式(a==1 && b==0)の演算結果であるtrueと関係式c==0を論理演算(つまり、論理演算の結果trueと関係式の2つを演算)、、結果true ↓ 左から3番目の&&は、左の論理式(a==1 && b==0 &&c==0 )の演算結果であるtrueと右の関係式b==0を論理演算(つまり、論理演算の結果trueと関係式の2つを演算)、結果true 質問3:上記前者の論理式a==1 && b==0 || (a==1 && b==0)について、trueになるプロセスの認識は以下で正しいですか? (a==1 && b==0)はtrue      ↓ a==1 && b==0 はtrue      ↓ ||は、右の論理式((a==1 && b==0))の演算の結果trueと左の論理式(a==1 && b==0)の演算結果trueを計算し(つまり論理演算の結果同士であるtrue2つを演算)、結果true

    • ベストアンサー
    • Java
  • ビットパターンについて

    以下の命題を解説付きで教えていただけると助かります。よろしくお願いします。 A=(0011), B=(0101)のビットパターンに対し、A・A-のビットパターンは(a)になり、A・Bのビットパターンは(b)になる。したがって、 X=A・Aー+ A・B の論理演算結果の真理値表のビットパターンは(c)になる。ただし「・」は論理積演算子、「+」は論理和演算子、A-, B-はおのおのA,Bの否定演算子を表すものとする。

  • 論理演算について質問

    最初に、前回同じ質問に答えてくださった方へ、いろいろな人から僕の仮説のコンセンサスを得たいので、再度同じ質問しますね。 int a=1,b=0,c=0のとき a==1 && b==0 | (a==1 && b==0) a==1 && b==0 &&c==0 && b==0 の2つの論理式あったとします 質問1:&&や||は、その間にある2つの関係式や2つの関係式の論理演算の結果同士などを論理演算するものだと思います。この認識で正しいですか? 質問2:上記の論理式の後者a==1 && b==0 &&c==0 && b==0について、trueになるプロセスの認識は以下で正しいですか? a==1 && b==0 はtrue       ↓  左から2番目の&&は、左の論理式(a==1 && b==0)の演算結果であるtrueと関係式c==0を論理演算(つまり、論理演算の結果trueと関係式の2つを演算)、、結果true ↓ 左から3番目の&&は、左の論理式(a==1 && b==0 &&c==0 )の演算結果であるtrueと右の関係式b==0を論理演算(つまり、論理演算の結果trueと関係式の2つを演算)、結果true 質問3:前者の論理式、a==1 && b==0 | (a==1 && b==0)について、trueになるプロセスの認識は以下で正しいですか? (a==1 && b==0)はtrue      ↓ a==1 && b==0 はtrue      ↓ |は、右の論理式((a==1 && b==0))の演算の結果trueと左の論理式(a==1 && b==0)の演算結果trueを計算し(つまり論理演算の結果同士であるtrue2つを演算)、結果true

    • ベストアンサー
    • Java