ホームページ  >  記事  >  バックエンド開発  >  PHPの基本チュートリアル

PHPの基本チュートリアル

巴扎黑
巴扎黑オリジナル
2016-11-21 09:32:58990ブラウズ

Brothers PHPトレーニング (www.lampbrother.net) 詳細解説:2進数、8進数、10進数、16進数の変換 1. 10進数と2進数の変換

(1) 10進数から2進数への変換、整数部と小数部に分かれます

① 整数部分

方法: 2で割って余りを取り、逆順に並べます。つまり、毎回整数部分を2で割って、余りがその桁の数字であり、商は引き続き2で割られます、残りは前の桁です。おもりの数字については、商が 0 になるまでこのステップが続きます。最後の数字を読み取るときは、最後の余りから最初の余りまでを読み取ります。以下に例を示します:

例: 10 進数 168 を 2 進数に変換します

結果は、10 進数 168 を 2 進数に変換します (10101000)

最初のステップでは、168 を 2 で割ります。商は 84、余りは 0 です。 。

2番目のステップは、商84を2で割ることで、商42の余りは0になります。

3番目のステップは、商42を2で割って、商21の余りが0になります。

4 番目のステップは、商 21 を 2 で割ることで、商 10 の余りは 1 になります。

5 番目のステップは、商 10 を 2 で割ることで、商 5 の余りは 0 になります。

6 番目のステップは、商 5 を 2 で割ることで、商 2 の余りは 1 になります。

ステップ 7: 商 2 を 2 で割ると、商 1 の余りは 0 になります。

ステップ 8: 商 1 を 2 で割ると、商 0 の余りは 1 になります。

ステップ9、読み取り、何度も2で割った後に最後の桁が得られるので、最後の余り、つまり10101000から順に数値を読みます

(2)小数部

の方法。 : 2を掛けて整数に丸め、順番に並べます。つまり、小数部を2倍し、整数部を取り、残りの小数部を2倍し、整数部を取り、残りを掛けます。小数部

がゼロになるまで、小数部を2倍します。決してゼロになれない場合は、小数点以下の桁数を必要なだけ保持する場合、次の桁が 0 か 1 かに基づいて数値を四捨五入するのと同じです。ゼロの場合は四捨五入します。オフ 1 の場合は 1 桁追加します。つまり、0 は 1 に丸められます。読み取り値は、前の整数から次の整数に読み取られます。 例 1: 0.125 を 2 進数に変換します

2 を掛けると 0.25 が得られ、整数部分は 0 になり、小数部分は 0.25 になります

。小数部 0.25 を 2 で乗算して 0.5 を取得すると、整数部は 0 になり、小数部は 0.5 になります。

第 3 ステップ 1: 小数部 0.5 に 2 を乗算して 1.0 を取得し、整数部は 1 となり、小数部は 0.5 になります。部分は 0.0;

4 番目のステップは、最初の桁から最後の桁、つまり 0.001 までを読み取ります。

例2、0.45を2進数に変換する(小数点第4位まで保持)

上記の手順からわかるように、5回目の乗算を実行すると、得られる結果は0.4となり、その後、小数部分が次のように乗算されます。 2, 0.8 を求め、0.8 に 2 を掛け、1.6 まで掛け続けます。結局、小数部分をゼロにすることは不可能です。したがって、この時点で小数点以下を四捨五入する方法を学習する必要があります。バイナリには 0 と 1 しかないため、0 が出現すると 1 に丸められます。これも変換時のコンピュータエラーが原因ですが、予約桁が多く精度も非常に高いため、無視しても問題ありません。

そうすると、0.45を2進数に変換すると、ほぼ0.0111に等しいと結論付けることができます

上で紹介した方法は、10進数を2進数に変換する方法です 皆さんが注意する必要があるのは、

1) 10進数を2進数に変換すること。 、整数に分割する必要があり、小数部分は別々に変換されます

2) 整数を変換する場合は 2 による除算方法が使用され、剰余方法が使用されますが、小数を変換する場合は 2 による乗算方法が使用されます

3)読み取り方向に注意してください

したがって、上記の方法から、10進数168.125を2進数に変換すると10101000.001、または10進数を2進数に変換すると10101000.0111にほぼ等しいと結論付けることができます。

(3)整数部と小数部に分けずに2進数を10進数に変換する

方法:重み付け加算、つまり2進数の各ビットの数値に重みを掛けて、その合計を10進数に加算します。例

2進数101.101を10進数に変換します。

結果は: (101.101)2=(5.625)10

2進数を10進数に変換するときに誰もが注意する必要があるのは

1) 2進数の各桁の重みを知っておく必要があります

2) あなたは次のことを行う必要があります各ビットを計算できる

の値 2. 2 進数と 8 進数の変換

まず、数学的な関係を理解する必要があります。つまり、23=8、24=16 であり、8 進数と 16 進数はこの関係から導出されます

、つまり、8 進数を表すには 3 つの 2 進数が使用され、16 進数を表すには 4 つの 2 進数が使用されます。

次に、8、4、2、1 という 4 つの数字を覚えてください (23=8、22=4、21=2、20=1)。次に、2 進数と 8 進数間の変換を練習してみましょう。

(1) 2進数を8進数に変換します

方法: 3 進 1 法を採用します。つまり、2 進小数点を分割点として開始し、左 (右) の 3 桁ごとに 1 桁にし、重量に応じてこれら 3 つの 2 進数を加算します。結果の数値は 1 桁、8 桁の 2 進数になります。数値は順番に並べられ、小数点の位置は変更されず、得られた数値が探している 8 進数になります。左(右)に3桁取って最上位(最下位)の桁までたどり着くと、3桁を構成できない場合は、小数点の一番左(右端)、つまり最上位に0を追加できます。整数の(最下位)桁を3人で構成します。例

①2進数101110.101を8進数に変換します

結果を取得します:101110.101を8進数に56.5に変換します

②2進数1101.1を8進数に変換します

結果を取得します:1101.1をThe 8進法は15.4

(2 ) 8 進数を 2 進数に変換する

方法: 3 分の 1 の方法を採用します。つまり、8 進数を 3 つの 2 進数に分解し、その 3 桁の 2 進数を使用して、重みに従って 8 進数を加算します。同じまま。例:

① 8進数67.54を2進数に変換します

したがって、8進数67.54を2進数110111.101100、つまり110111.1011に変換します

上記の質問からもわかるように、8進数から2進数への変換を計算します

まず、各 8 進数を左から右に 3 桁に展開し、小数点は変更しないでください

次に、各桁を 22, 21, 20 (つまり 4, 2, 1) の 3 桁に展開して、数値、つまり、a× 22 + b× 21 + c× 20 = ビット内の数値 (a=1 または a=0、b=1 または b=0、c=1 または c=0)、abc を配置します。ビットの2進数を取得します

次に、各ビットを2進数に変換し、順番に並べます

最後に、8進数から2進数に変換された数値が得られます。

上記の方法は、2進数と8進数の交換です。問題を行う際に注意する必要があるのは、

1)それらの間の交換は、1桁と3桁の間の変換であり、間の変換とは異なります。 2 進数と 10 進数

2) 0 を追加したり、0 を削除したりする場合は、小数点の左端または小数点の右端 (つまり、小数点の最上位の桁) で 0 を追加または削除する必要があることに注意してください。整数と小数点の最下位桁)、そうでない場合はエラーが発生します

3. 2進数から16進数への変換

方法: 2進数から8進数への変換と同様に、1桁(16進数)と4桁( 2進数)を以下で詳しく説明します

(1) 2進数を16進数に変換する

方法: 4 進法、つまり 2 進数の小数点を分割点として開始し、4 桁ごとに取得します。左(右)を1桁にし、重みに応じてこれら4つの2進数を加算すると、16桁の2進数が得られ、それを順番に並べると、小数点の位置は変化せず、その数が得られます取得された値は、探している 16 進数です。左(右)に4桁取って最上位(最下位)の桁までたどり着くと、4桁が構成できない場合は、小数点の一番左(右端)、つまり最上位に0を追加できます。整数の(下位)桁は 4 人で構成されます。

①例:バイナリ 11101001.1011 を 16 進数に変換します

結果を取得します:バイナリ 11101001.1011 を 16 進数に変換して E9.B

②例:101011.101 を 16 進数に変換します

そのためe 結果を取得します: バイナリ 101011.101 を 16 進数の 2B.A に変換します

( 2)16進数を2進数に変換する

方法:4分の1法、つまり16進数を4つの2進数の数値に分解し、4つの2進数を使用して16進数を合計し、小数点の位置は変わりません。

① 16進数の6E.2を2進数に変換します

したがって、結果は次のようになります: 16進数の6E.2を2進数に変換して、01101110.0010、つまり110110.001になります

4. 8進数と16進数の変換

方法: 、それらはあり得ません通常、8 進数 (または 16 進数) が 2 進数に変換され、次に 2 進数が 16 進数 (または 8 進数) に変換されます。小数点の位置は変わりません。次に、対応する変換については、上記の 2 進数から 8 進数への変換と 2 進数から 16 進数への変換を参照してください

5. 8 進数から 10 進数への変換

(1) 8 進数から 10 進数への変換

方法: 重み付け加算方法を押します。つまり、10 進数は、8 進数の各ビットにビットの重みを乗算し、その合計を加算することによって取得されます。

例: ①8進数67.35を10進数に変換する

(2) 10進数を8進数に変換する

10進数を8進数に変換するには2つの方法があります:

1) 間接的な方法: まず10進数を2進数に変換し、次に2進数を再度変換します。 8進数へ

2) 直接法: 前に述べたように、8進数は2進数から派生するため、次のように同様の方法を使用して10進数を2進数に変換したり、整数部と小数部を変換したりすることができます。 :

①整数部

方法: 8 で割って余りの方法を採用します。つまり、整数部分を毎回 8 で割って、余りが重みの数値になり、商を引き続き 8 で割った余りが重みの数値になります。前の値に重みを置き、商が 0 になるまでこのステップを続けます。最後の数値を読み取るときは、最後の余りから最初の余りまで始めます。

② 小数部

方法: 8 を掛けて全体の方法を切り上げます。つまり、小数部を 8 倍して整数部を取り、残りの小数部を 8 で掛け続けて整数部を取ります。 、残りの小数部に 8 を掛けます。小数部が 0 になるまで計算します。決してゼロになれない場合、それは小数の四捨五入と同じであり、一時的に 3 丸めと名付けられます。

例: 10 進数 796.703125 を 8 進数

解決策: まず、この数値を整数部 796 と小数部 0.703125 に分けます

整数部

小数部

したがって、結果は 10 進数 79 になります6.70 3125 を 8 進数に 1434.55 に変換します

最初に 10 進数に変換し、次に 8 進数に変換して、結果が同じかどうかを確認できます

6. 16 進数と 10 進数の変換

16 進数と 10 進数には違いがあります。 8 進数 多くの類似点があります。上記の 8 進数と 10 進数の間の変換を参照して、これら 2 つのシステム間の変換を試してください。

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