php实现36进制与10进制转换功能示例

下面是关于“PHP实现36进制与10进制转换功能”的攻略,包括基本概念、转换方法以及示例代码。

基本概念

在计算机科学中,36进制是指使用36个数字和字母(0-9, A-Z)来表示数字的进位系统,与10进制(0-9)不同。而10进制是我们最常使用的进位系统,也称为“十进制数制”。

在实际应用中,我们经常需要将36进制与10进制之间进行相互转换,用于解密、编码、加密等各种场合。

转换方法

10进制转36进制

  • 将10进制数不断地除以36,每次取余数作为36进制数的高位数字,直到商为0。
  • 将得到的所有余数倒序排列即可得到36进制数。

示例代码:

function decimalTo36($num) {
  $chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  $result = '';
  while ($num > 0) {
    $rem = $num % 36;
    $result = $chars[$rem] . $result;
    $num = (-1) * floor((-1) * $num / 36);
  }
  return $result;
}
echo decimalTo36(12345); // 输出:9IX

36进制转10进制

  • 将36进制数从最高位到最低位依次遍历。
  • 将每个36进制数字转化为10进制数字,再乘以该位上的权值(36的对应的幂次方),然后将所有结果相加即可。

示例代码:

function from36($num) {
  $chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  $result = 0;
  $len = strlen($num);
  for ($i = 0; $i < $len; $i++) {
    $result += strpos($chars, $num[$i]) * pow(36, $len - $i - 1);
  }
  return $result;
}
echo from36('9IX'); // 输出:12345

示例说明

示例1

需求:将36进制数‘ZZZ’转换为10进制数。

解法:

  • 将36进制数从最高位到最低位依次遍历:'Z' -> 'Z' -> 'Z'
  • 将每个36进制数字转化为10进制数字,再乘以该位上的权值,即 $10^2$、$10^1$、$10^0$,相加即可:$3510^2 + 3510^1 + 35*10^0 = 46655$

示例代码:

function from36($num) {
  $chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  $result = 0;
  $len = strlen($num);
  for ($i = 0; $i < $len; $i++) {
    $result += strpos($chars, $num[$i]) * pow(36, $len - $i - 1);
  }
  return $result;
}
echo from36('ZZZ'); // 输出:46655

示例2

需求:将10进制数1000转换为36进制数。

解法:

  • 将10进制数不断地除以36,每次取余数作为36进制数的高位数字,直到商为0。算出来的余数需要转化为对应的36进制数字。
  • 将得到的所有余数倒序排列即可。

示例代码:

function decimalTo36($num) {
  $chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  $result = '';
  while ($num > 0) {
    $rem = $num % 36;
    $result = $chars[$rem] . $result;
    $num = (-1) * floor((-1) * $num / 36);
  }
  return $result;
}
echo decimalTo36(1000); // 输出:RS

以上是关于“PHP实现36进制与10进制转换功能”的攻略,希望对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php实现36进制与10进制转换功能示例 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • PHP导出带样式的Excel示例代码

    下面就为大家介绍一下如何使用 PHP 导出带样式的 Excel,并附上两个示例说明。 1. 准备工作 首先,你需要安装 PHPExcel 库,这是一个用于在 PHP 中操作 Excel 的优秀库,它可以直接生成带样式的 Excel 文件。你可以从 PHPExcel 官方网站下载并安装。 2. 示范代码 下面是一个简单的 PHP 导出带样式的 Excel 示例…

    PHP 2023年5月26日
    00
  • PHP 数组基本操作方法详解

    PHP 数组基本操作方法详解 本文将介绍 PHP 数组的基本操作方法,包括如何创建、访问、修改和删除数组中的元素。同时也会介绍如何合并和分割数组,以及如何遍历和排序数组。 创建数组 在 PHP 中创建数组很简单,有以下两种方法: 使用 array() 函数: php$arr1 = array(1, 2, 3); 使用 [] 符号: php$arr2 = [1…

    PHP 2023年5月26日
    00
  • PHP输出九九乘法表代码实例

    下面是详细讲解“PHP输出九九乘法表代码实例”的完整攻略。 1. 需求分析 我们需要使用PHP编写一个程序,能够在网页上输出九九乘法表。 2. 解决方案 步骤如下: 2.1. 使用双重循环输出九九乘法表 在PHP中,我们可以使用双重循环来实现九九乘法表的输出。具体实现过程如下: <?php for ($i = 1; $i <= 9; $i++) …

    PHP 2023年5月23日
    00
  • PHP检测数据类型的几种方法(总结)

    下面是详细的攻略: PHP检测数据类型的几种方法(总结) 在PHP中,检测数据类型是开发中常见的操作。下面是几种PHP检测数据类型的方法: 方法一:使用gettype()函数 gettype()函数可以返回一个给定变量的类型。例如: <?php $str = ‘hello’; echo gettype($str); // 输出:string ?>…

    PHP 2023年5月26日
    00
  • php获取从html表单传递数组的方法

    PHP获取从HTML表单传递数组的方法可以通过超全局变量$_POST或$_GET来实现。当HTML表单中出现名字相同的多个输入控件时,这些控件的值将以数组的形式提交。 首先,我们需要在 HTML 表单中设置一个 input 元素的 name 属性为一个数组形式的名称。例如: <form method="POST" action=&q…

    PHP 2023年5月26日
    00
  • 深入PHP内存相关的功能特性详解

    深入PHP内存相关的功能特性详解 PHP作为一门高级语言,具有自动内存管理的特性,这意味着程序员不需要手动管理内存。不过作为一个PHP开发者,了解PHP内存管理的机制和一些特性还是很有必要的,这有助于你更好地理解PHP的行为以及优化你的代码。 PHP内存管理机制 PHP内存管理是基于引用计数的,每一个用于存储数据的变量都有一个相关的“引用计数器”,用于表示当…

    PHP 2023年5月30日
    00
  • PHP中获取文件扩展名的N种方法小结

    下面是针对“PHP中获取文件扩展名的N种方法小结”的攻略: 前言 文件扩展名是指文件名称中的最后一个.符号后面的部分,比如.jpg、.mp3等等,通常用来表示文件的类型。PHP中获取文件扩展名有很多方法,本文将介绍其中的N种。 方法一:使用pathinfo函数获取文件扩展名 PHP中提供了pathinfo()函数,可以方便地分解文件信息,包括获取文件的文件名…

    PHP 2023年5月26日
    00
  • PHP实现的装箱算法示例

    下面是“PHP实现的装箱算法示例”的完整攻略。 什么是装箱算法? 装箱算法也称为“三维装箱问题”,它是一种在给定的一组物品中选择最少数量的物品并将它们放入指定数量和容量的盒子中的问题。通常用于优化物品的存储和运输。装箱算法的总体目标是找到最优的箱子布局,并尽量减少使用的箱子数量,以最小化成本和空间。 如何使用PHP来实现装箱算法 下面是一些实现装箱算法所需的…

    PHP 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部