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

yizhihongxing

下面是关于“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日

相关文章

  • 使用 eAccelerator加速PHP代码的目的

    使用 eAccelerator 加速 PHP 代码的目的是为了提高 PHP 代码的执行效率,加快响应速度,降低服务器负载,提升网站性能。eAccelerator 是一个免费的开源 PHP 加速器,可以将 PHP 脚本编译成字节码,并对字节码进行缓存,从而避免重复编译和解释,提高 PHP 执行效率。以下是使用 eAccelerator 加速 PHP 代码的具体…

    PHP 2023年5月27日
    00
  • 微信收款有礼收款积分怎么免费兑换提现额度?

    微信收款有礼收款积分怎么免费兑换提现额度 微信收款有礼活动是微信官方针对微信支付商户开展的一项活动,商户通过该活动进行收款,可以获得一定比例的收款积分,收款积分可以用于兑换现金提现额度,从而提高商户的资金收益。 如何获得收款积分 商户通过微信支付进行收款,即可获得一定比例的收款积分,收款积分的比例随着商户的等级提升而提高,具体收款积分的比例可以在微信支付商户…

    PHP 2023年5月23日
    00
  • PHP单元测试框架PHPUnit用法详解

    PHP单元测试框架PHPUnit用法详解 PHPUnit是PHP中最流行的单元测试框架之一,它提供了一种简单而高效的方式来测试代码的正确性。在本文中,我们将介绍PHPUnit的使用方法,包括安装、编写和运行测试用例,并提供两个示例来帮助读者更好地理解。 安装PHPUnit PHPUnit可以通过Composer来安装,使用以下命令: composer req…

    PHP 2023年5月23日
    00
  • php在线打包程序源码

    请看下面的详细讲解。 PHP在线打包程序源码的完整攻略 简介 PHP在线打包程序是一种方便Web开发的工具,它允许您将多个PHP文件打包成一个文件,以便于在Web服务器上部署和使用。在本文中,我们将介绍如何使用PHP在线打包程序生成打包后的代码。 步骤 1. 下载和安装PHP在线打包程序 首先,您需要下载和安装PHP在线打包程序。您可以从其官方网站或Gith…

    PHP 2023年5月23日
    00
  • php简单复制文件的方法

    PHP是一种动态脚本语言,可以用来处理文件和目录。PHP提供了很多函数,可以用来操作文件系统。复制文件是一个常见的文件操作任务,本篇文章将讲解如何使用PHP简单复制文件的方法。 1. 使用copy()函数 PHP提供了copy()函数,可以用来将文件从一个位置复制到另一个位置。下面是copy()函数的语法: bool copy ( string $sourc…

    PHP 2023年5月26日
    00
  • 深入PHP异步执行的详解

    深入PHP异步执行的详解 什么是异步执行 异步执行是指某一段代码可以在原有代码流程中独立运行,不影响其他代码的执行流程,可以提高程序的性能和效率。 PHP异步执行的方式 异步执行方式一:多进程 多进程可以通过pcntl、posix等扩展进行实现。使用这种方式需要注意以下几点: 需要在操作系统级别创建新的进程,这会占用一定的系统资源。 子进程需要向父进程发送进…

    PHP 2023年5月26日
    00
  • PHP的pcntl多进程用法实例

    PHP的pcntl是一种多进程扩展,可以帮助PHP程序员方便地实现多进程编程。下面将详细讲解PHP的pcntl多进程用法实例,包括pcntl的安装、使用方法和实例说明。 安装pcntl扩展 在Linux系统中,可以使用以下命令安装pcntl扩展: sudo apt-get install php-pcntl 安装成功后,可以使用phpinfo()函数来检查p…

    PHP 2023年5月23日
    00
  • PHP实现图片旋转的方法详解

    以下是关于“PHP实现图片旋转的方法详解”的完整使用攻略: 基础知识 在了解PHP实现图片旋转方法之前,需要掌握一些基础知识,包括PHP GD库的基本用法、PHP GD库中的图像旋转函数、PHP GD库中的图像处理函数等。以下是一些常见的基础知识: PHP GD库的基本用法,包括GD库的安装、GD库的基本函数等。 PHP GD库中的图像旋转函数,包括imag…

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