これは面接の質問ですが、理解できないと表明した学生もいました。簡単なトレーニングをすることは難しくありませんが、完璧な比較を書くには基礎力が試され、論理的思考力も必要となります。生徒の方向性が PHP であるため、PHP を使用して説明します。また、PHP を学習することが重要ではないこともわかります。エコー「hello world」を 2 文書くか、Web ページにループ出力することができれば、PHP を呼び出すことができると言われています。
# ここでいくつかの知識を紹介します: (推奨される学習: PHP ビデオ チュートリアル)
##1 、数値は 1 バイト、つまり 8 ビットを占めます。
たとえば、10 進数の 1 は、コンピュータでは 2 進数で 00000001 と表現されます (10 進数を 2 進数に変換するのを忘れた場合は、Baidu に問い合わせてください。以下の内容は理解できないので忘れてください~~~) PHP ではecho bindec("00000001"); //bindec函数可以让你体会到 二进制和10进制之间的 骚转换<br/>
#2 を使用できます。10 進数の加算 1 1 =2 (このヒントは非常に重要です) ~~、よく理解してください)
ディスプレイスメントでそれを行うにはバイナリを使用してください答え: 00000010 これは正確に 2 (2 の 1 乗) です。
答え: 00000011 これはちょうど 3 (2 の 1 乗、2 の 0 乗 = 2 1 = 3)
答え: 00000100 これは 4 (2 の 2 乗) です。
答え: 00000101 この男は 4 (2 の 2 乗、2 の 0 乗 = 4 1 = 5)
問題の解決を開始します
2 進数 00000101 があるとします。今度はそれを逆さまにして 10100000 に変える必要があります。どうやって遊ぶのですか? 答えはインターネット上にたくさんあるので、以下のアイデアについて話しましょう:1. まず、2 つの変数 が必要です。
1) 一時変数は $xxoo と呼ばれ、初期値は 0 (10 進数)、バイナリでは 00000000 です。 2) 元の値変数は $shit と呼ばれ、00000101 ~2. 3 つのステップ
1) $xxoo を 1 ビット左に移動します 2) バイナリの最後の桁かどうかを判断します$shit の値は 1 です。そうであれば、$ を与えます。xxoo の 10 進数の値は 1 増加します。これを 2 進数とみなして 00000000 を 00000001 に変更することが非常に重要です。そうでない場合、$xxoo の初期値は 00000000 です。これはp ずつずらしてください。 。 。それらはすべて 0 なので、2 進数の最後のビットが 1 であるかどうかをどのように判断するのでしょうか?文字列または正規表現をインターセプトして判断する必要があります(不可能ではありません)回答: 元の値と 1 (つまり 00000001) の論理 AND 演算を実行するだけです (1&1 は 1) 、1&0 または 0&1 は常に 0)
3) 次に、$shit を 1 桁右に移動します
1) 元々 00000101 だった場合、00000010 になります移動後 (つまり、$xxoo と shit が同時に左に 1 つ、右に 1 つ移動されます。shit の最後のビットが 1 であれば、それを判断できるので、$ の最後のビットはxxoo も 1 に設定して、xxoo と shit の両方を実現します。同期と逆) 上記の処理を 8 回繰り返して、10100000 完全なコードは次のとおりです。以下に続きますfunction rev($n)<br/>{<br/> $xxoo = 0;<br/> for ($i = 0; $i < 8; $i++) {<br/> $xxoo = $xxoo << 1;<br/> if (($n & 1) == 1) {<br/> $xxoo++;<br/> }<br/> $n = $n >> 1;<br/> }<br/> return $xxoo;<br/>}<br/>echo decbin(rev(5));<br/>
ただし、注意してください。上記の関数は半角数字をサポートしています (8 桁のみをサポートしています)
オンライン面接の質問は 32 です。 -bit 数値、および次のコードは一般数字 (このコードはオンラインでは利用できません~~~)。考えて理解しましょう。あまり説明はしません。PHP コードのスキルが必要です:
function rev($n)<br/>{<br/> $num=intval(strlen(decbin($n))/8); //整除 8<br/> if($num==0)<br/> $bitLen=8;//最小8位<br/> else<br/> {<br/> if((strlen(decbin($n)) % 8)>0)<br/> $bitLen=($num+1)*8;<br/> else<br/> $bitLen=$num*8;<br/> }<br/> echo “原始值二进制:”.str_pad(decbin($n),$bitLen,’0′,STR_PAD_LEFT).”<br/>”;<br/> $xxoo = 0;<br/> for ($i = 0; $i < $bitLen; $i++) {<br/> $xxoo = $xxoo << 1;<br/> if (($n & 1) == 1) {<br/> $xxoo++;<br/> }<br/> $n = $n >> 1;<br/> }<br/> echo “反转后值二进制:”.str_pad(decbin($xxoo),$bitLen,’0′,STR_PAD_LEFT).”<br/>”;<br/> return $xxoo;<br/>}<br/>
Call testecho rev(4);<br/>echo rev(43261596);<br/>
結果原始值二进制:00000100<br/>反转后值二进制:00100000<br/>32原始值二进制:00000010100101000001111010011100<br/>反转后值二进制:00111001011110000010100101000000<br/>964176192<br/>
以上がインタビュー質問:バイナリビット反転の実装アイデアの説明(PHP一般版)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

PHPは、現代のWeb開発、特にコンテンツ管理とeコマースプラットフォームで依然として重要です。 1)PHPには、LaravelやSymfonyなどの豊富なエコシステムと強力なフレームワークサポートがあります。 2)パフォーマンスの最適化は、Opcacheとnginxを通じて達成できます。 3)PHP8.0は、パフォーマンスを改善するためにJITコンパイラを導入します。 4)クラウドネイティブアプリケーションは、DockerおよびKubernetesを介して展開され、柔軟性とスケーラビリティを向上させます。

PHPは、特に迅速な開発や動的なコンテンツの処理に適していますが、データサイエンスとエンタープライズレベルのアプリケーションには良くありません。 Pythonと比較して、PHPはWeb開発においてより多くの利点がありますが、データサイエンスの分野ではPythonほど良くありません。 Javaと比較して、PHPはエンタープライズレベルのアプリケーションでより悪化しますが、Web開発により柔軟性があります。 JavaScriptと比較して、PHPはバックエンド開発により簡潔ですが、フロントエンド開発のJavaScriptほど良くありません。

PHPとPythonにはそれぞれ独自の利点があり、さまざまなシナリオに適しています。 1.PHPはWeb開発に適しており、組み込みのWebサーバーとRich Functionライブラリを提供します。 2。Pythonは、簡潔な構文と強力な標準ライブラリを備えたデータサイエンスと機械学習に適しています。選択するときは、プロジェクトの要件に基づいて決定する必要があります。

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

PHPが多くのWebサイトよりも優先テクノロジースタックである理由には、その使いやすさ、強力なコミュニティサポート、広範な使用が含まれます。 1)初心者に適した学習と使用が簡単です。 2)巨大な開発者コミュニティと豊富なリソースを持っています。 3)WordPress、Drupal、その他のプラットフォームで広く使用されています。 4)Webサーバーとしっかりと統合して、開発の展開を簡素化します。

PHPは、特にWeb開発の分野で、最新のプログラミングで強力で広く使用されているツールのままです。 1)PHPは使いやすく、データベースとシームレスに統合されており、多くの開発者にとって最初の選択肢です。 2)動的コンテンツ生成とオブジェクト指向プログラミングをサポートし、Webサイトを迅速に作成および保守するのに適しています。 3)PHPのパフォーマンスは、データベースクエリをキャッシュおよび最適化することで改善でき、その広範なコミュニティと豊富なエコシステムにより、今日のテクノロジースタックでは依然として重要になります。

PHPでは、弱い参照クラスを通じて弱い参照が実装され、ガベージコレクターがオブジェクトの回収を妨げません。弱い参照は、キャッシュシステムやイベントリスナーなどのシナリオに適しています。オブジェクトの生存を保証することはできず、ごみ収集が遅れる可能性があることに注意する必要があります。

\ _ \ _ Invokeメソッドを使用すると、オブジェクトを関数のように呼び出すことができます。 1。オブジェクトを呼び出すことができるように\ _ \ _呼び出しメソッドを定義します。 2。$ obj(...)構文を使用すると、PHPは\ _ \ _ Invokeメソッドを実行します。 3。ロギングや計算機、コードの柔軟性の向上、読みやすさなどのシナリオに適しています。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

SublimeText3 中国語版
中国語版、とても使いやすい

WebStorm Mac版
便利なJavaScript開発ツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター
