• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ビット演算で!?)

ビット演算で!?

このQ&Aのポイント
  • ビット演算とは、2進数のビット単位で行われる演算のことです。
  • ビット演算には、AND演算、OR演算、XOR演算、ビット反転、ビットシフトなどがあります。
  • ビット演算を使えば、数字を効率的に処理することができます。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

まず、 %32b が間違いの可能性大。 標準的なC言語では、 %b という変換はありません。 ただし、独自拡張で%bを取り入れているCコンパイラもあるかもしれません。 そういうコンパイラを使っている、他では使えない、ということを意識して使っているなら「間違いではありません」 PHPで使えるから、といって、C言語でのprintfのマニュアルを調べようともせずに%bを使ったのなら「大間違い」です。 PHPとCは、文法が似ているところがあります。実際に、同じ記述で同じ動作をすることも多いです。 しかし、%bのような違いもあります。ちゃんと調べるようにしましょう。 > printf("%32b\n",-15); //11111111111111111111111111110000 > は間違いないでしょうか? 多くの場合、負の値には「2の補数表現」が使われます。 「-15」は、「15の0/1反転」とはなりません。 よって「間違い」の可能性大です。 ただ、負の表現に「1の補数表現」を使うこともできます (具体的なコンパイラは知りませんが、C言語の規格で許されています) そういう処理系では、「-15」は「15の0/1反転」となります。 よって、間違いではありません > printf("%32b\n",>>15); 文法的に間違っています。

Campus2
質問者

お礼

 御回答誠にありがとうございました。  <PHP 構文を  C言語とC++に!ご質問したこは申し訳ございませんでした。    PHPサイトに今度から質問します。   %b、%32bのご指摘ですが・・参考書をみても、ググッテも出た来ませんでした!?  ビット演算子なので、bitの略だと思います。なぜPHPで使えるか?%32b php.iniあたりで制御しているのかと思われます。  そこのところはよく分かりません!?    その他ご指摘いただいた printf("%32b\n",>>15);  ですが、printf("%32b\n",15>>1); でした、参考書の転記ミスでした。

その他の回答 (2)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.3

失礼しました 「マイナス」ではなく「チルダ」でしたか。 チルダならビット反転なので正しいです。

Campus2
質問者

お礼

御回答誠にありがとうございました。  プログラムの流れからして、少し先入観で勘違いしているところがありましたので、わざわざ質問しました__。  勘違いに気づいたら、簡単でした。  はじめてやることは、不安定です。

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

~ はビットの反転なので、15 と ~15 は0と1が入れ替わっていれば正常です。 つまり、合ってます。

Campus2
質問者

お礼

御回答誠にありがとうございました。  プログラムの流れからして、少し先入観で勘違いしているところがありましたので、わざわざ質問しました__。  勘違いに気づいたら、簡単でした。  はじめてやることは、不安定です。

関連するQ&A