PHP实现在线进制转换器,10进制,2、4、8、16、32进制转换
1.接口文档
2.laravel实现代码
/*** 进制转换计算器* @return \Illuminate\Http\JsonResponse*/public function binaryConvertCal(){$ten = $this->request('ten');$two = $this->request('two');$four = $this->request('four');$eight = $this->request('eight');$sixteen = $this->request('sixteen');$thirty_two = $this->request('thirty_two');$type = intval($this->request('type')) ?: 10;$data = ['ten' => $ten,'two' => $two,'four' => $four,'eight' => $eight,'sixteen' => $sixteen,'thirty_two' => $thirty_two];if ($type == 10 && $ten) {// 1.十进制$data['ten'] = $ten;// 2.将十进制转换二进制$data['two'] = decbin($ten);// 3.十进制转换四进制$data['four'] = $this->decimalToBase($ten, 4);// 4.十进制转换八进制$data['eight'] = decoct($ten);// 5.十进制转换十六进制$data['sixteen'] = dechex($ten);;// 6.十进制转换三十二进制$data['thirty_two'] = $this->base10ToBase32($ten);}if ($type == 2 && $two) {// 1.二进制转换十进制$ten = bindec($two);$data['ten'] = $ten ?: 'NAN';// 2.二进制$data['two'] = $two;// 3.二进制转换为四进制$fourNumber = bindec($two); // 转换为10进制$fourNumber = base_convert($fourNumber, 10, 4); // 转换为4进制$data['four'] = $fourNumber ?: 'NAN';// 4.二进制转换为八进制$eightNumber = bindec($two); // 转换为10进制$eight = base_convert($eightNumber, 10, 8); // 转换为8进制$data['eight'] = $eight ?: 'NAN';// 5.二进制转换为十六进制$sixteenNumber = bindec($two); // 转换为10进制$sixteen = base_convert($sixteenNumber, 10, 16); // 转换为16进制$data['sixteen'] = $sixteen ?: 'NAN';// 6.二进制转换为三十二进制$decimalNumber = bindec($two); // 将二进制数字转换为十进制$thirty_two = base_convert($decimalNumber, 10, 32); // 将十进制数字转换为32进制$data['thirty_two'] = $thirty_two ?: 'NAN';}if ($type == 4 && $four) {// 1.四进制转换十进制$ten = $this->base4_to_decimal($four);$data['ten'] = $ten ?: 'NAN';// 2.四进制转换为二进制$two = $this->base4_to_binary($four);$data['two'] = $two ?: 'NAN';// 3.四进制$data['four'] = $four;// 4.四进制转换为八进制$eight = $this->base4_to_octal($four);$data['eight'] = $eight ?: 'NAN';// 5.四进制转换为十六进制$sixteen = $this->base4_to_hexadecimal($four);$data['sixteen'] = $sixteen ?: 'NAN';// 6.四进制转换为三十二进制$thirty_two = $this->base4_to_base32($four);$data['thirty_two'] = $thirty_two ?: 'NAN';}if ($type == 8 && $eight) {// 1. 8进制转换为10进制$ten = octdec($eight);$data['ten'] = $ten ?: 'NAN';// 2. 8制转换为二进制$two = base_convert($eight, 8, 2);$data['two'] = $two ?: 'NAN';// 3. 8进制转换为4进制$four = base_convert($eight, 8, 4);$data['four'] = $four ?: 'NAN';// 4. 8进制$data['eight'] = $eight;// 5. 8进制转换为16进制$sixteen = base_convert($eight, 8, 16);$data['sixteen'] = $sixteen ?: 'NAN';// 6. 8进制转换为32进制$base32Chars = '0123456789ABCDEFGHIJKLMNOPQRSTUV';$base32Number = '';$decimalNumber = octdec($eight);while ($decimalNumber > 0) {$remainder = $decimalNumber % 32;$base32Number = $base32Chars[$remainder] . $base32Number;$decimalNumber = intdiv($decimalNumber, 32);}$data['thirty_two'] = $base32Number ?: 'NAN';}if ($type == 16 && $sixteen) {// 1. 将16进制转换为10进制$ten = hexdec($sixteen);$data['ten'] = $ten ?: 'NAN';// 2. 16制转换为2进制$two = base_convert($sixteen, 16, 2);$data['two'] = $two ?: 'NAN';// 3. 16进制转换为4进制$four = base_convert($sixteen, 16, 4);$data['four'] = $four ?: 'NAN';// 4. 16进制转换为8进制$eight = base_convert($sixteen, 16, 8);$data['eight'] = $eight;// 5. 16进制$data['sixteen'] = $sixteen;// 6. 将16进制转换为32进制$thirty_two = $this->hexToBase32($sixteen);$data['thirty_two'] = $thirty_two ?: 'NAN';}if ($type == 32 && $thirty_two) {// 1. 将32进制转换为10进制$ten = $this->base32ToDecimal($thirty_two);$data['ten'] = $ten ?: 'NAN';// 2. 32制转换为2进制$two = $this->base32ToBinary($thirty_two);$data['two'] = $two ?: 'NAN';// 3. 32进制转换为4进制$four = $this->base32ToQuaternary($thirty_two);$data['four'] = $four ?: 'NAN';// 4. 32进制转换为8进制$eight = $this->base32ToOctal($thirty_two);$data['eight'] = $eight;// 5. 32进制转换为16进制$data['sixteen'] = $this->base32ToHex($thirty_two);// 6. 32进制$data['thirty_two'] = $thirty_two;}return $this->jsonSuc(['result' => $data]);}/*** 十进制转换* @param $decimal* @param $base* @return string*/function decimalToBase($decimal, $base){$result = '';while ($decimal > 0) {$remainder = $decimal % $base;$result = $remainder . $result;$decimal = (int)($decimal / $base);}return $result;}/*** 十进制转换为三十二* @param $num* @return string*/function base10ToBase32($num){$chars = '0123456789ABCDEFGHIJKLMNOPQRSTUV';$base32 = '';while ($num > 0) {$remainder = $num % 32;$base32 = $chars[$remainder] . $base32;$num = (int)($num / 32);}return ($base32 === '') ? '0' : $base32;}/*** 4转换为10进制* @param $num* @return float|int*/function base4_to_decimal($num){$decimal = 0;$base = 4;$num_length = strlen($num);for ($i = 0; $i < $num_length; $i++) {$digit = intval($num[$i]);$decimal += $digit * pow($base, $num_length - $i - 1);}return $decimal;}/*** 4转换为2进制* @param $num* @return string*/function base4_to_binary($num){$decimal = $this->base4_to_decimal($num);return decbin($decimal);}/*** 4转换为8进制* @param $num* @return string*/function base4_to_octal($num){$decimal = $this->base4_to_decimal($num);return decoct($decimal);}/*** 4转换为16进制* @param $num* @return string*/function base4_to_hexadecimal($num){$decimal = $this->base4_to_decimal($num);return dechex($decimal);}/*** 4转换为32进制* @param $num* @return string*/function base4_to_base32($num){$decimal = $this->base4_to_decimal($num);return base_convert($decimal, 10, 32);}/*** 16转32进制* @param $hex* @return string*/function hexToBase32($hex){$base32Chars = '0123456789ABCDEFGHIJKLMNOPQRSTUV';$result = '';// 将十六进制字符串拆分成两个字符一组$hexPairs = str_split($hex, 2);// 将每个十六进制对转换为十进制,并将其转换为五位长的三十二进制数foreach ($hexPairs as $pair) {$dec = hexdec($pair);$base32 = '';while ($dec >= 32) {$rem = $dec % 32;$base32 = $base32Chars[$rem] . $base32;$dec = (int)($dec / 32);}$base32 = $base32Chars[$dec] . $base32;$result .= $base32;}return $result;}/*** 将32进制转换为10进制* @param string $num 32进制字符串* @return int 转换后的10进制数值*/function base32ToDecimal($num){$base32_chars = "0123456789abcdefghijklmnopqrstuv";$dec = 0;$len = strlen($num);for ($i = 0; $i < $len; $i++) {$pos = strpos($base32_chars, $num[$i]);$dec = 32 * $dec + $pos;}return $dec;}/*** 将32进制转换为2进制* @param string $num 32进制字符串* @return string 转换后的2进制字符串*/function base32ToBinary($num){$dec = $this->base32ToDecimal($num);$binary = decbin($dec);return $binary;}/*** 将32进制转换为4进制* @param string $num 32进制字符串* @return string 转换后的4进制字符串*/function base32ToQuaternary($num){$dec = $this->base32ToDecimal($num);$quaternary = base_convert($dec, 10, 4);return $quaternary;}/*** 将32进制转换为8进制* @param string $num 32进制字符串* @return string 转换后的8进制字符串*/function base32ToOctal($num){$dec = $this->base32ToDecimal($num);$octal = decoct($dec);return $octal;}/*** 将32进制转换为16进制* @param string $num 32进制字符串* @return string 转换后的16进制字符串*/function base32ToHex($num){$dec = $this->base32ToDecimal($num);$hex = dechex($dec);return $hex;}
相关文章:

PHP实现在线进制转换器,10进制,2、4、8、16、32进制转换
1.接口文档 2.laravel实现代码 /*** 进制转换计算器* return \Illuminate\Http\JsonResponse*/public function binaryConvertCal(){$ten $this->request(ten);$two $this->request(two);$four $this->request(four);$eight $this->request(eight);$sixteen …...

报错 | Spring报错详解
Spring报错详解 一、前言二、报错提示三、分层解读1.最下面一层Caused by2.上一层Caused by3.最上层Caused by 四、总结五、解决方案 一、前言 本文主要是记录在初次学习Spring时遇到报错后的解读以及解决方案 二、报错提示 三、分层解读 遇到报错的时候,我们需要…...

PHP最简单自定义自己的框架数据库封装调用(五)
1、实现效果调用实现数据增删改查封装 2、index.php 入口定义数据库账号密码 <?php//定义当前请求模块 define("MODULE",index);//定义数据库 define(DB_HOST,localhost);//数据库地址 define(DB_DATABASE,aaa);//数据库 define(DB_USER,root);//数据库账号 def…...
使用Redis来实现点赞功能的基本思路
使用Redis来实现点赞功能是一种高效的选择,因为Redis是一个内存数据库,适用于处理高并发的数据操作。以下是一个基本的点赞功能在Redis中的设计示例: 假设我们有一个文章或帖子,用户可以对其进行点赞,取消点赞&#x…...

【黑马头条之app端文章搜索ES-MongoDB】
本笔记内容为黑马头条项目的app端文章搜索部分 目录 一、今日内容介绍 1、App端搜索-效果图 2、今日内容 二、搭建ElasticSearch环境 1、拉取镜像 2、创建容器 3、配置中文分词器 ik 4、使用postman测试 三、app端文章搜索 1、需求分析 2、思路分析 3、创建索引和…...

Nginx安装以及LVS-DR集群搭建
Nginx安装 1.环境准备 yum insatall -y make gcc gcc-c pcre-devel #pcre-devel -- pcre库 #安装openssl-devel yum install -y openssl-devel 2.tar安装包 3.解压软件包并创建软连接 tar -xf nginx-1.22.0.tar.gz -C /usr/local/ ln -s /usr/local/nginx-1.22.0/ /usr/local…...

后端开发9.商品类型模块
概述 简介 商品类型我设计的复杂了点,设计了多级类型 效果图 数据库设计...
spring框架自带的http工具RestTemplate用法
1. RestTemplate是什么? RestTemplate是由Spring框架提供的一个可用于应用中调用rest服务的类它简化了与http服务的通信方式。 RestTemplate是一个执行HTTP请求的同步阻塞式工具类,它仅仅只是在 HTTP 客户端库(例如 JDK HttpURLConnection&a…...

【flink】Checkpoint expired before completing.
使用flink同步数据出现错误Checkpoint expired before completing. 11:32:34,455 WARN org.apache.flink.runtime.checkpoint.CheckpointFailureManager [Checkpoint Timer] - Failed to trigger or complete checkpoint 4 for job 1b1d41031ea45d15bdb3324004c2d749. (2 con…...

【论文阅读】NoDoze:使用自动来源分类对抗威胁警报疲劳(NDSS-2019)
NODOZE: Combatting Threat Alert Fatigue with Automated Provenance Triage 伊利诺伊大学芝加哥分校 Hassan W U, Guo S, Li D, et al. Nodoze: Combatting threat alert fatigue with automated provenance triage[C]//network and distributed systems security symposium.…...
【ARM64 常见汇编指令学习 16 -- ARM64 SMC 指令】
文章目录 ARMv8 同步异常同步异常指令SMC TYPE 上篇文章:ARM64 常见汇编指令学习 15 – ARM64 标志位的学习 下篇文章:ARM64 常见汇编指令学习 17 – ARM64 BFI 指令 ARMv8 同步异常 在ARMv8架构中,同步异常主要包括以下几种: Un…...

uprobe trace多线程mutex等待耗时
问题背景环境 ubuntu2204 服务器支持debugfs uprobe,为了提升应用程序的性能,需要量化不同参数下多线程主程序等待在mutex上的耗时区别 linux document中对uprobe events的说明如下 uprobetracer.rst - Documentation/trace/uprobetracer.rst - Linux…...
Linux 和 MacOS 中的 profile 文件详解(一)
什么是 profile 文件? profile 文件是 Linux、MacOS 等(unix、类 unix 系统)系统中的一种配置文件,主要用于设置系统和用户的环境变量。 在 shell 中,可以通过执行 profile 文件来设置用户的环境变量。shell 有两种运…...

不用技术代码,如何制作成绩查询系统?
为了解决学校无力承担传统学生考试成绩查询平台的高昂费用,老师们可以考虑使用易查分这样的工具来免费制作一个学生考试成绩查询平台。易查分是一种简单易用的在线成绩查询系统,可以帮助老师们快速创建一个个性化的学生考试成绩查询平台。 使用易查分制作…...

flinksql sink to sr often fail because of nullpoint
flinksql or DS sink to starrocks often fail because of nullpoint flink sql 和 flink ds sink starrocks 经常报NullpointException重新编译代码 并上传到flink 集群 验证,有效 flink sql 和 flink ds sink starrocks 经常报NullpointException 使用flink-sta…...
达梦数据库:Error updating database. Cause: dm.jdbc.driver.DMException: 数据未找到
异常:Error updating database. Cause: dm.jdbc.driver.DMException: 数据未找到 在使用达梦数据库批量插入或更新数据时,给我报了一个从来没有遇到过的错误,当时我给的一批数据就只有那么几条数据插入不进去,检查了语法和数据类…...

电脑怎么查看连接过的WIFI密码(测试环境win11,win10也能用)
电脑怎么查看连接过的WIFI密码 方法一:适用于正在连接的WIFI密码的查看 打开设置 点击“网络和Internet”,在下面找到“高级网络设置”点进去 在下面找到 “更多网络适配器选项” 点进去 找到 WLAN ,然后双击它 5.然后点击“无线属性” 6.…...
处理数据部分必备代码
1、读取数据出现UTF-8错误 encoding"gbk"2、进行时间系列的平均,并将平均后的数据转化为时间格式 data.index pd.to_datetime(data.index) data data.groupby(data.index.to_period(H)).mean() data.index data.index.to_timestamp() df[hour] df.i…...

layui 集成 ztree异步加载
首先,layui环境搭建,ztree环境引入 ztree的js和css都要引入,我这里暂时用的是core包> 静态,一句话就够了 <!-- 左侧菜单树形组件 --><div class"layui-col-md3"><div class"layui-footer "…...

LeetCode面向运气之Javascript—第27题-移除元素-98.93%
LeetCode第27题-移除元素 题目要求 一个数组nums和一个值val,你需要原地移除所有数值等于val的元素,并返回移除后数组的新长度 举例 输入:nums [3,2,2,3], val 3 输出:2, nums [2,2] 输入:nums [0,1,2,2,3,0,4,2…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...
Neo4j 集群管理:原理、技术与最佳实践深度解析
Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...
Vite中定义@软链接
在webpack中可以直接通过符号表示src路径,但是vite中默认不可以。 如何实现: vite中提供了resolve.alias:通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...
OD 算法题 B卷【正整数到Excel编号之间的转换】
文章目录 正整数到Excel编号之间的转换 正整数到Excel编号之间的转换 excel的列编号是这样的:a b c … z aa ab ac… az ba bb bc…yz za zb zc …zz aaa aab aac…; 分别代表以下的编号1 2 3 … 26 27 28 29… 52 53 54 55… 676 677 678 679 … 702 703 704 705;…...
libfmt: 现代C++的格式化工具库介绍与酷炫功能
libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库,提供了高效、安全的文本格式化功能,是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全:…...
6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础
第三周 Day 3 🎯 今日目标 理解类(class)和对象(object)的关系学会定义类的属性、方法和构造函数(init)掌握对象的创建与使用初识封装、继承和多态的基本概念(预告) &a…...
绕过 Xcode?使用 Appuploader和主流工具实现 iOS 上架自动化
iOS 应用的发布流程一直是开发链路中最“苹果味”的环节:强依赖 Xcode、必须使用 macOS、各种证书和描述文件配置……对很多跨平台开发者来说,这一套流程并不友好。 特别是当你的项目主要在 Windows 或 Linux 下开发(例如 Flutter、React Na…...

ubuntu中安装conda的后遗症
缘由: 在编译rk3588的sdk时,遇到编译buildroot失败,提示如下: 提示缺失expect,但是实测相关工具是在的,如下显示: 然后查找借助各个ai工具,重新安装相关的工具,依然无解。 解决&am…...

C++11 constexpr和字面类型:从入门到精通
文章目录 引言一、constexpr的基本概念与使用1.1 constexpr的定义与作用1.2 constexpr变量1.3 constexpr函数1.4 constexpr在类构造函数中的应用1.5 constexpr的优势 二、字面类型的基本概念与使用2.1 字面类型的定义与作用2.2 字面类型的应用场景2.2.1 常量定义2.2.2 模板参数…...