PHPの基本チュートリアル

巴扎黑
巴扎黑オリジナル
2016-11-21 10:47:161298ブラウズ

詳しい説明:2進数、8進数、10進数、16進数の変換 1.10進数と2進数の変換
(1)10進数から2進数への変換は、整数部と小数部に分けられます
①整数部
方法:2で割った余り、逆に並べますつまり、整数部分が 2 で除算されるたびに、剰余がポジション ウェイトの数値となり、引き続き商が 2 で除算され、剰余が前のポジション ウェイトの数値になります。このステップは継続します。最後の数値を読み取る場合は、最後の余りから最初の余りまでを読み取ります。以下に例を示します。
例: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 進数に変換し、0.25 を取得すると、整数部分は 0、小数部分は 0.25 になります。
2 番目のステップでは、小数部分に 0.25 を掛けます。 2、0.5を取得すると、整数部は0、小数部は0.5になります
第3ステップ、小数部を乗算します 0.5に2を乗算すると1.0が得られ、整数部は1、小数部は0.0になります。 4 番目のステップでは、最初の桁から最後の桁 (0.001) までを読み取ります。
例2、0.45を2進数に変換する(小数点第4位まで保持)
上記の手順からわかるように、5回目の乗算を行うと、結果は0.4となり、その後は小数部分が次のように乗算されます。 2に0.8をかけて0.8を2倍して1.6まで掛け続けると結局小数部をゼロにすることは不可能なのでこの際小数点以下を四捨五入する方法を覚えないといけません。 2 進法は 0 と 1 のみなので、0 が切り上げられます。これも変換時のコンピュータエラーが原因ですが、予約桁が多く精度も非常に高いため、無視しても問題ありません。
そうすると、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 進数はこの関係から導出されます。つまり、次のように表されます。 3 桁の 2 進数 1 つの 8 進数は、4 つの 2 進数を使用して 16 進数を表します。
次に、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を8進数に15.4に変換します
2 ) 8 進数を 2 進数に変換する
メソッド: 1 対 3 の方法を採用します。つまり、8 進数を 3 つの 2 進数に分解し、その 3 桁の 2 進数を使用して、重みに応じて 8 進数を加算します。小数点の位置は変わりません。例:
① 8進数67.54を2進数に変換します
したがって、8進数67.54を2進数110111.101100に変換すると、110111.1011になります
上記の質問からもわかるように、8進数を2進数に計算します
まず、8進数を2進数に変換します左から右に、各桁が 3 桁に拡張され、小数点の位置は変更されません
次に、各桁が 22、21、20 の 3 桁に拡張されます (つまり、4、2、1)つまり、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進数と8進数の間の変換とは異なります。 10進数
2 ) 0を足したり0を削除したりするとき、誰もが小数点の左端または小数点の右端(つまり、整数の最上位桁と最下位)の0を追加したり0を削除したりすることに注意する必要があります。 10 進数の桁)、そうでない場合はエラーが発生します
3. 2 進数から 16 進数への変換
方法: 1 桁 (16 進数) と 4 桁 (2 進数) の変換であることを除いて、2 進数から 8 進数への変換と同様です。詳しく説明します
(1) 2進数から16進数への変換
方法:4in1法、つまり2進数の小数点を分割点として開始し、左(右)の4桁ごとに1桁を取る方法、これら 4 つの 2 進数を重みに応じて加算すると、得られる数値は 1 桁の 16 個の 2 進数になります。さらに、小数点の位置を変えずにそれらを順番に並べると、結果の数値が 16 進数になります。探しています。左(右)に4桁取って最上位(最下位)の桁までたどり着くと、4桁が構成できない場合は、小数点の一番左(右端)、つまり最上位に0を追加できます。整数の(下位)桁は 4 人で構成されます。
①例:バイナリ 11101001.1011 を 16 進数に変換します
結果を取得します:バイナリ 11101001.1011 を 16 進数に E9.B に変換します
②例:101011.101 を 16 進数に変換します
結果を取得します:バイナリ 101011.1 を変換します0 1 16進数に変換して2B.A
(2) 16進数を2進数に変換する
方法:1/4法、つまり16進数を2進数4桁に分解し、2進数4桁を使用する 16進数は重みを加算したもので、小数点位置は変わりません。
①16進数の6E.2を2進数に変換します
結果が得られます:16進数の6E.2を2進数に変換し、01101110.0010、つまり110110.001になります
IV. 8進数と16進数の変換
方法:通常は不可能です 通常、相互に直接変換する必要があります。 8 進数 (または 16 進数) を 2 進数に変換し、次に小数点位置を変更せずに 2 進数を 16 進数 (または 8 進数) に変換します。次に、対応する変換については、上記の 2 進数から 8 進数への変換と 2 進数から 16 進数への変換を参照してください
5. 8 進数から 10 進数への変換
上記の数値にビットの重みを乗算し、加算して 10 進数を取得します。
例: ①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をオクタル数に変換します
解決策:最初にこの数値を整数パート796および小数パート0.703125に分割します
整数部分
10進数796.703125を変換した結果796.703125数値は 1434.55 です
上記の方法を使用できます 検証するには、まず 10 進数に変換し、次に 8 進数に変換して、結果が同じかどうかを確認できます
6. 16 進数と 10 進数間の変換
16 進数と 8 進数の間には多くの類似点があります。上記の 8 進数と 10 進数間の変換については、これら 2 つの体系間の変換を自分で試してみてください。

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