ホームページ バックエンド開発 PHPチュートリアル PHPのメディアン演算の使い方の紹介

PHPのメディアン演算の使い方の紹介

Jun 20, 2017 pm 01:32 PM
php ビット演算

phpビット演算はPHPではあまり使用されませんが、非常に便利なPHPビット演算の使い方を紹介します。

  • $a & $b and (ビット単位の AND)

  • $a | $b or (ビット単位の OR)

  • $a ^ $b Xor (ビット単位の排他的 OR)

  • ~$ a Not(ビット単位ではありません)

  • $a << $b 左シフト(左シフト)

  • $a >> $b 右シフト(右シフト)

説明$a & $b ビットごとの AND は、$a と $b の両方が 1 であるビットを 1 に設定します。

例:10 & 12 = 8
ログイン後にコピー

10 1010

12 1100
1000 8
$a または、$ のいずれかを設定しますa または $b は 1 になります。
例: 10 | 12 = 14
10 1010
12 1100
1110 14
$a ^ $b ビットごとの XOR
例: 10 ^ 12
10 1010
12 1100
0110
~ビット単位の表記は $a の 0 を 1 に設定し、1 を 0 に設定します
例: ~10 =
10 1010 111111111111111111111111111111111 111111111111111111111110101 -11
$a $b を左に移動すると、$a の要素が左に移動します$b 回 (各移動は 2 を乗算することを意味します);
例: 1 << 10 = 1024
1(1) は 10 ビットを左に移動します 10000000000 (1024)
は 1*2 の 10 乗に相当します。 PHP に電源操作がないのは本当に憂鬱です。
$a >> $a の値を右に $b 回移動します (各移動は 2 で割ることを意味します)
例: 1024 <<2 = 1256
10000000000(1024) 2 ビットで 100000000 (256)
php は演算 $a & $b と (ビット単位の AND) $a | $b or (ビット単位の OR) $a ^ $b Xor (ビット単位の排他的 OR) ~$a Not (ビット単位) not) $a <<$b 左にシフト (左にシフト) $a >> $b 右にシフト (右にシフト)
$a と $b を結合する $a & $b の詳細説明両方とも 1 から 1 のビット; 例: 10 & 12 = 810 101012 1100 1000 8
$a | $b ビットごとの OR は、$a または $b の 1 であるビットを 1 に設定します。 1100 1110 14
$a ^ $b ビット単位の XOR の例: 10 ^ 1210 101012 1100 0110 6
~a ビット単位の NOT は、$a の 0 を 1 に設定し、1 を 1 に設定します。 例: ~10 = 10 1010 11111111111111111111111 1111111111111111111111111111111110101 -11
$ a << $b $a $b 回左に移動します (各移動は 2 を乗算することを意味します); 例: 1 < ;< 10 = 10241(1) 10 桁ずつ左にシフトします 10000000000(1024) *2 の 10 乗 PHP にべき乗演算がないのは本当に憂鬱です。
$a >> $b 右シフト $a を右に $b 回移動します (各移動は 2 で除算することを意味します) 例: 1024 << 2 = 125610000000000(1024) 右シフト 2 のビットは次の組み合わせです。 of 100000000(256)

フラグビットフィールドと
ビット演算子

PHPの
error_reportingのパラメータ値リスト

  • 1 E_ERROR

  • 2 AR NING

  • 4 E_PARSE

  • 8 E_NOTICE

  • 16 E_CORE_ERROR



  • 32 E_CORE_WARNING


  • 64 E_COMPILE_ ERROR


  • 128 E_COMPILE_WARNING


  • 256 E_

    USER_ERROR

  • 512 E_USER_WARNING


  • 1024 E_USER_NOTICE


  • 2047 E_ALL

  • 2048 E_STRICT

  • 40 96 E_RECOVERABLE_ERROR
  • value の値がすべて飛んでいることがわかり、 all 2のn+1乗です

これをもう一度見てください。 value の値をバイナリに変換します。

値定数

0000 0001 E_ERROR

0000 0010 E_WARNING
0000 0100 E_PARSE
0000 1000 E_NOTICE
0001 0000 E_CORE_ERROR
0010 E_CORE_WARN ING
.
.
.
... ...電力が 1 回追加されるごとに、1 桁がバイナリ システムに追加されました (コンピューターを勉強したことのあるほとんどの人はこれを知っています:)…)
注: 各オプションはビットに対応します (1 はオンを意味し、0 はオフを意味します)

それでは、パラメーターを設定する利点を見てみましょうこのような。

例として 3 つのパラメータを使用して効果を確認します

error_reporting(3);//decbin(3) == 0000 0011; (相当于设置 E_WARNING 和 E_ERROR )
error_reporting(4);//decbin(4) == 0000 0100;(相当于设置 E_PARSE )
error_reporting(5);//decbin(5) == 0000 0101;(相当于设置 E_PARSE 和 E_ERROR)
ログイン後にコピー

設定の取得:

特定の項目がオンになっているかどうかを判断するには、ビット演算を使用して取得できます (& - "AND" ルール、すべて 1 は 1 です) 、それ以外の場合は 0)

//E_PARSE

if($n & 4){

//E_PARSE がオンになります
//4の 2 進数は 0100 です。3 番目のビットだけが 1 なので、「」を実行すると、 &" 演算
他の場合
すべては 0 に設定されます//したがって、$n の 3 番目のビットも 1 である場合にのみ結果が 0 より大きくなります。 //4(0100)、5(0101)、6(0110)、7(0111)など
}else{
//E_PARSEはオフです
//3番目のビットは0で、このオプションがオフであることを意味します


設定の変更: ($n は現在の 10 進数値を表します)

アプリケーション中に、必要に応じて特定のビットのスイッチを設定することがあります。

以下の使用法を参照してください。

//E_PARSE 項目を閉じて、「&」「AND」ルールを使用します
$n = $n&(8192-4-1);
//なぜ 8191 を使用するのですか?
//これはオプションの数に関係します。このエラー表示マークは合計 13 ビットを使用します (4096 は 2 進数で 13 ビット)、8192 は (14 ビット) です。
//なぜマイナス 4 マイナス 1 なのでしょうか。 ?
//8192-4-1=8187。 (1111111111011) 2 進数は 13 桁で、使用する最大桁数と同じです。そして、3 番目のビットの対応する値は 0 です。
//この数値を使用して、1 ~ 4096 の間の任意の数値とビットごとの AND 演算を実行します。0 に設定される 3 番目のビットを除いて、他のビットの値は変更されません? "AND" ルール:)
//同様に、E_WARNING をオフにしたい場合
//$n = $n&(8192-2-1);

//E_PARSE 項目を有効にするには、'|' を使用しますOR" ルール
$ n = $n|4;
//上記の終了を読んだ後、開始についていくつかのアイデアが浮かぶかもしれません:)
// '|' - "OR" ルールには 1 が 1 として含まれ、それ以外の場合は 0 になります。
//上記はすべてのビットです。1 の場合、他のビットには影響しません。次に、すべてのビットが 0 の場合、他のビットには影響しません:)
//したがって、対応する値を設定するだけです。後続のオペランドの 2 進ビットを 1 にすると、他のビットはすべて 0 になり、問題ありません。
//見つけましたか?これは、それぞれの設定項目に対応する 10 進数値です:


以上がPHPのメディアン演算の使い方の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

See all articles