この記事では、主に PHP ベースの変換を紹介し、具体的な例に基づいて 2、8、16、36、64 ベースから 10 ベースへの変換の実装テクニックを分析します。必要な友人は参考にしてください。この記事の例では、PHP ベースの変換について説明します。参考までに皆さんとシェアしてください。詳細は以下の通りです:
実現可能:
10進数変換 2, 8, 16, 36, 62 進数
2, 8, 16, 36, 62 進数変換 10
注意すべき点は、2、8、16 の 16 進数を変換する場合、システム独自の関数が使用されることです。
そのため、変換値がどんなに高精度であっても、2147483646より大きくなる可能性があります。
さらに、
16進数の低精度変換、最大値は2147483646、16進数の高精度変換、最大値は77309411327、
16進数の高精度変換、最大値は133143986175です。
jinzhi.php ファイルには、デモ機能が付属しています。
<?php $mtime1 = explode(" ", microtime()); $startTime = $mtime1[0] + $mtime1[1]; ?> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>进制转换/title> </head> <body> <form id="jzh" name="jinzhih" method="post" action=""> <input name="go" type="hidden" value="100"> <table width="482" border="1" cellpadding="0" cellspacing="0" bordercolor="#FFE8E8" bgcolor="#F4F8FB"> <tr> <td width="194"><select name="jinzhi0" id="jinzhi0"> <option value="2">2</option> <option value="8">8</option> <option value="10" selected="selected">10</option> <option value="16">16</option> <option value="36">36</option> <option value="62">62</option> </select> 进制</td> <td width="275"><input name="zhi" type="text" id="zhi" /></td> </tr> <tr> <td>进行<input name="lx" type="radio" value="0" checked="checked" /> 普通<input type="radio" name="lx" value="1" />高精</td><td> </td> </tr> <tr> <td>转换为 <select name="jinzhi1" id="jinzhi1"> <option value="2" selected="selected">2</option> <option value="8">8</option> <option value="10">10</option> <option value="16">16</option> <option value="36">36</option> <option value="62">62</option> </select>进制,</td><td>总长度为 <input name="changdu" type="text" id="changdu" value="10" size="4" maxlength="2" /> 字符。</td></tr><tr> <td><input type="submit" name="Submit" value="提交" /></td> <td><input type="reset" name="Submit2" value="重置" /></td> </tr></table> <p>注意:仅能进行10进制转换为2、8、16、36、62进制;或反转换。</p></form> <?php class jinzhi_class { //10进制转2、8、16、36、62进制 function jinzhih_0($shu,$jinzhi,$w) { $zifu = ""; while ($shu!=0){ $linshi = $shu%$jinzhi; switch ($jinzhi){ case 2: $zifu = decbin($shu); return $zifu; case 8: $zifu = decoct($shu); return $zifu; case 16: $zifu = dechex($shu); return $zifu; case 36: if ($linshi>=10) { $zifu.= chr(($linshi+55)); }else{ $zifu.= $linshi;} break; case 62: if (($linshi>=10) && ($linshi36)) {$zifu.= chr($linshi+55);break;} if (($linshi>=36) && ($linshi62)) {$zifu.= chr($linshi+61);break;} $zifu.= $linshi;break; default: $zifu.= $linshi; break; } $shu = intval($shu/$jinzhi); } for ($i=strlen($zifu);$i$w;$i++) $zifu.="0"; return strrev($zifu);} //2、8、16、36、62进制转10进制 function jinzhih_1($zifu,$jinzhi,$w) { $shu=0; for ($i=0;$i=strlen($zifu)-1;$i++) { $linshi = substr($zifu,$i,1); switch ($jinzhi){ case 2: $shu = bindec($zifu); $i=strlen($zifu)+1; break; case 8: $shu = octdec($zifu); $i=strlen($zifu)+1; break; case 16: $shu = hexdec($zifu); $i=strlen($zifu)+1; break; case 36: if (ord($linshi)=57) {$shu+=(ord($linshi)-48)*pow($jinzhi,strlen($zifu)-$i-1); }else{ $shu=$shu + (ord($linshi)-55)*pow($jinzhi,strlen($zifu)-$i-1);} break; case 62: if (ord($linshi)=57) {$shu+=$linshi*pow($jinzhi,strlen($zifu)-$i-1); }elseif ((ord($linshi)>=65) && (ord($linshi)=90)){ $shu+= (ord($linshi)-55)*pow($jinzhi,strlen($zifu)-$i-1); }else{ $shu+= (ord($linshi)-61)*pow($jinzhi,strlen($zifu)-$i-1);} break; } } return $shu; } //10进制高精度转换2、8、16、36、62进制 function jinzhih_G0($shu,$jinzhi,$w) { $zifu = ""; while ($shu!=0){ $linshi = bcmod($shu,$jinzhi); switch ($jinzhi){ case 2: $zifu = decbin($shu); return $zifu; case 8: $zifu = decoct($shu); return $zifu; case 16: $zifu = dechex($shu); return $zifu; case 36: if ($linshi>=10) { $zifu.= chr(($linshi+55)); }else{ $zifu.= $linshi;} break; case 62: if (($linshi>=10) && ($linshi36)) {$zifu.= chr($linshi+55);break;} if (($linshi>=36) && ($linshi62)) {$zifu.= chr($linshi+61);break;} $zifu.= $linshi;break; default: $zifu.= $linshi; break; } $shu = intval(bcp($shu,$jinzhi)); } for ($i=strlen($zifu);$i$w;$i++) $zifu.="0"; return strrev($zifu);} //2、8、16、36、62进制高精度转换10进制 function jinzhih_G1($zifu,$jinzhi,$w) { $shu= ""; for ($i=0;$i=strlen($zifu)-1;$i++) { $linshi = substr($zifu,$i,1); switch ($jinzhi){ case 2: $shu = bindec($zifu); $i=strlen($zifu)+1; break; case 8: $shu = octdec($zifu); $i=strlen($zifu)+1; break; case 16: $shu = hexdec($zifu); $i=strlen($zifu)+1; break; case 36: if (ord($linshi)=57) {$shu=bcadd($shu,bcmul((ord($linshi)-48),bcpow($jinzhi,strlen($zifu)-$i-1))); }else{ $shu=bcadd($shu,bcmul((ord($linshi)-55),bcpow($jinzhi,strlen($zifu)-$i-1)));} break; case 62: if (ord($linshi)=57) {$shu=bcadd($shu,bcmul($linshi,bcpow($jinzhi,strlen($zifu)-$i-1))); }elseif ((ord($linshi)>=65) && (ord($linshi)=90)){ $shu=bcadd($shu,bcmul((ord($linshi)-55),bcpow($jinzhi,strlen($zifu)-$i-1))); }else{ $shu=bcadd($shu,bcmul((ord($linshi)-61),bcpow($jinzhi,strlen($zifu)-$i-1))); } break; } } return $shu;} } if (isset($_GET["p"])) {if ($_GET["p"]==="1"){ echo ""; echo "提示: "; echo "32进制低精转换,最大值:2147483646 "; echo "32进制高精转换,最大值:77309411327 "; echo "64进制高精转换,最大值:133143986175 "; echo ""; echo "值为:"; $Fs = new jinzhi_class(); if ($_POST['lx']=="0" && $_POST['jinzhi0']=="10") {echo $Fs->jinzhih_0($_POST['zhi'],$_POST['jinzhi1'],$_POST['changdu'])." ";} if ($_POST['lx']=="1" && $_POST['jinzhi0']=="10") {echo $Fs->jinzhih_G0($_POST['zhi'],$_POST['jinzhi1'],$_POST['changdu']);} if ($_POST['lx']=="0" && $_POST['jinzhi0']>"10") {echo $Fs->jinzhih_1($_POST['zhi'],$_POST['jinzhi0'],$_POST['changdu']);} if ($_POST['lx']=="1" && $_POST['jinzhi0']>"10") {echo $Fs->jinzhih_G1($_POST['zhi'],$_POST['jinzhi0'],$_POST['changdu']);} } echo "";} $mtime1 = explode(" ", microtime()); $endTime = $mtime1[0] + $mtime1[1]; printf ("页面执行时间:%.6fs.",$endTime-$startTime); ?>以上がこの記事の全内容です、皆様の勉強に少しでもお役に立てれば幸いです。
関連する推奨事項:
テキストファイルとバイナリ
バイトストリームデータ、バイナリ以上がPHPの16進数変換例を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

負荷分散はセッション管理に影響しますが、セッションの複製、セッションの粘着性、集中セッションストレージで解決できます。 1。セッションレプリケーションサーバー間のセッションデータをコピーします。 2。セッションスティンネスは、ユーザーリクエストを同じサーバーに指示します。 3.集中セッションストレージは、Redisなどの独立したサーバーを使用してセッションデータを保存してデータ共有を確保します。

SESSIONLOCKINGISATECHNIQUESTOESUREAUSER'SSESSIONREMAINSEXCLUSIVETOONEUSATIME.ITISCRUCIALFORPREVENTINGDATACORTIONANDSECURITYBREACHESINMULTI-USERAPPLICATIONS.SESSIONLOCKINGISISIMPLEMENTEDUSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGROCKINGSMECHANISMなど

PHPセッションの代替品には、Cookie、トークンベースの認証、データベースベースのセッション、Redis/Memcachedが含まれます。 1.Cookiesは、クライアントにデータを保存することによりセッションを管理します。 2.トークンベースの認証はトークンを使用してユーザーを検証します。これは非常に安全ですが、追加のロジックが必要です。 3.Databaseベースのセッションは、データベースにデータを保存します。これは、スケーラビリティが良好ですが、パフォーマンスに影響を与える可能性があります。 4. Redis/Memcachedは分散キャッシュを使用してパフォーマンスとスケーラビリティを向上させますが、追加のマッチングが必要です

SessionHijackingとは、ユーザーのSessionIDを取得してユーザーになりすましている攻撃者を指します。予防方法には、次のものが含まれます。1)HTTPSを使用した通信の暗号化。 2)SessionIDのソースの検証。 3)安全なSessionID生成アルゴリズムの使用。 4)SessionIDを定期的に更新します。

この記事では、PHPについて説明し、その完全なフォーム、Web開発での主要な使用、PythonとJavaとの比較、および初心者の学習のしやすさについて説明します。

PHPは、$ \ _ postおよび$ \ _を使用してフォームデータを処理し、検証、消毒、安全なデータベースインタラクションを通じてセキュリティを確保します。

この記事では、PHPとASP.NETを比較して、大規模なWebアプリケーション、パフォーマンスの違い、セキュリティ機能への適合性に焦点を当てています。どちらも大規模なプロジェクトでは実行可能ですが、PHPはオープンソースであり、プラットフォームに依存しませんが、ASP.NET、

PHPの症例感度は変化します:関数は鈍感であり、変数とクラスは感度があります。ベストプラクティスには、一貫した命名と、比較のためにケース非感受性関数を使用することが含まれます。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

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

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

ホットトピック









