16进制字符串转36进制字符串
PHP任意进制之间转换数字base_convert
http://php.net/manual/zh/function.base-convert.php
实际测试时因为有精度留失的问题,会导致换错误。
Warning
由于使用内部的 "double" 或 "float" 类型,base_convert() 的操作可能会导致大数值中的精度丢失。请参见本手册的 浮点数 章节以便获得更多详细信息。
$s = 'BE55D904-1F35-4838-8F8F-B27EDEA9DFAB'; $sha1 = sha1($s); echo $sha1; echo '<br />'; $sha36 = str_baseconvert($sha1, 16, 36); echo $sha36; echo '<br />'; $sha1 = str_baseconvert($sha36, 36, 16); echo $sha1; echo '<br />'; function str_baseconvert($str, $frombase=10, $tobase=36) { $str = trim($str); if (intval($frombase) != 10) { $len = strlen($str); $q = 0; for ($i=0; $i<$len; $i++) { $r = base_convert($str[$i], $frombase, 10); $q = bcadd(bcmul($q, $frombase), $r); } } else $q = $str; if (intval($tobase) != 10) { $s = ''; while (bccomp($q, '0', 0) > 0) { $r = intval(bcmod($q, $tobase)); $s = base_convert($r, 10, $tobase) . $s; $q = bcdiv($q, $tobase, 0); } } else $s = $q; return $s; }
申明
非源创博文中的内容均收集自网上,若有侵权之处,请及时联络,我会在第一时间内删除.再次说声抱歉!!!
博文欢迎转载,但请给出原文连接。
分类:
PHP & MySql
标签:
base_convert
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
2014-01-08 PHP工程师笔试题
2014-01-08 [转]InnoDB和MyISAM区别
2014-01-08 [转]XCache 3.0.0 发布,PHP 性能提升方案
2009-01-08 MS SQL2000 && 2005转出数据字典
2008-01-08 改善用户体验之alert提示效果
2008-01-08 如何在网页中插入Flv视频文件
2008-01-08 ASP在线转flv+所略图+flash在线录制视频