当前位置: 首页 > news >正文

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时遇到报错后的解读以及解决方案 二、报错提示 三、分层解读 遇到报错的时候&#xff0c;我们需要…...

PHP最简单自定义自己的框架数据库封装调用(五)

1、实现效果调用实现数据增删改查封装 2、index.php 入口定义数据库账号密码 <?php//定义当前请求模块 define("MODULE",index);//定义数据库 define(DB_HOST,localhost);//数据库地址 define(DB_DATABASE,aaa);//数据库 define(DB_USER,root);//数据库账号 def…...

使用Redis来实现点赞功能的基本思路

使用Redis来实现点赞功能是一种高效的选择&#xff0c;因为Redis是一个内存数据库&#xff0c;适用于处理高并发的数据操作。以下是一个基本的点赞功能在Redis中的设计示例&#xff1a; 假设我们有一个文章或帖子&#xff0c;用户可以对其进行点赞&#xff0c;取消点赞&#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是什么&#xff1f; RestTemplate是由Spring框架提供的一个可用于应用中调用rest服务的类它简化了与http服务的通信方式。 RestTemplate是一个执行HTTP请求的同步阻塞式工具类&#xff0c;它仅仅只是在 HTTP 客户端库&#xff08;例如 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 上篇文章&#xff1a;ARM64 常见汇编指令学习 15 – ARM64 标志位的学习 下篇文章&#xff1a;ARM64 常见汇编指令学习 17 – ARM64 BFI 指令 ARMv8 同步异常 在ARMv8架构中&#xff0c;同步异常主要包括以下几种&#xff1a; Un…...

uprobe trace多线程mutex等待耗时

问题背景环境 ubuntu2204 服务器支持debugfs uprobe&#xff0c;为了提升应用程序的性能&#xff0c;需要量化不同参数下多线程主程序等待在mutex上的耗时区别 linux document中对uprobe events的说明如下 uprobetracer.rst - Documentation/trace/uprobetracer.rst - Linux…...

Linux 和 MacOS 中的 profile 文件详解(一)

什么是 profile 文件&#xff1f; profile 文件是 Linux、MacOS 等&#xff08;unix、类 unix 系统&#xff09;系统中的一种配置文件&#xff0c;主要用于设置系统和用户的环境变量。 在 shell 中&#xff0c;可以通过执行 profile 文件来设置用户的环境变量。shell 有两种运…...

不用技术代码,如何制作成绩查询系统?

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

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 集群 验证&#xff0c;有效 flink sql 和 flink ds sink starrocks 经常报NullpointException 使用flink-sta…...

达梦数据库:Error updating database. Cause: dm.jdbc.driver.DMException: 数据未找到

异常&#xff1a;Error updating database. Cause: dm.jdbc.driver.DMException: 数据未找到 在使用达梦数据库批量插入或更新数据时&#xff0c;给我报了一个从来没有遇到过的错误&#xff0c;当时我给的一批数据就只有那么几条数据插入不进去&#xff0c;检查了语法和数据类…...

电脑怎么查看连接过的WIFI密码(测试环境win11,win10也能用)

电脑怎么查看连接过的WIFI密码 方法一&#xff1a;适用于正在连接的WIFI密码的查看 打开设置 点击“网络和Internet”&#xff0c;在下面找到“高级网络设置”点进去 在下面找到 “更多网络适配器选项” 点进去 找到 WLAN &#xff0c;然后双击它 5.然后点击“无线属性” 6.…...

处理数据部分必备代码

1、读取数据出现UTF-8错误 encoding"gbk"2、进行时间系列的平均&#xff0c;并将平均后的数据转化为时间格式 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异步加载

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

LeetCode面向运气之Javascript—第27题-移除元素-98.93%

LeetCode第27题-移除元素 题目要求 一个数组nums和一个值val&#xff0c;你需要原地移除所有数值等于val的元素&#xff0c;并返回移除后数组的新长度 举例 输入&#xff1a;nums [3,2,2,3], val 3 输出&#xff1a;2, nums [2,2] 输入&#xff1a;nums [0,1,2,2,3,0,4,2…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段&#xff1a; 构建阶段&#xff08;Build Stage&#xff09;&#xff1a…...

VB.net复制Ntag213卡写入UID

本示例使用的发卡器&#xff1a;https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别

UnsatisfiedLinkError 在对接硬件设备中&#xff0c;我们会遇到使用 java 调用 dll文件 的情况&#xff0c;此时大概率出现UnsatisfiedLinkError链接错误&#xff0c;原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用&#xff0c;结果 dll 未实现 JNI 协…...

Opencv中的addweighted函数

一.addweighted函数作用 addweighted&#xff08;&#xff09;是OpenCV库中用于图像处理的函数&#xff0c;主要功能是将两个输入图像&#xff08;尺寸和类型相同&#xff09;按照指定的权重进行加权叠加&#xff08;图像融合&#xff09;&#xff0c;并添加一个标量值&#x…...

【JavaSE】绘图与事件入门学习笔记

-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角&#xff0c;以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向&#xff0c;距离坐标原点x个像素;第二个是y坐标&#xff0c;表示当前位置为垂直方向&#xff0c;距离坐标原点y个像素。 坐标体系-像素 …...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版&#xff0c;柱状图PPT模版&#xff0c;线状图PPT模版&#xff0c;折线图PPT模版&#xff0c;饼状图PPT模版&#xff0c;雷达图PPT模版&#xff0c;树状图PPT模版 图表类系列各种样式PPT模版分享&#xff1a;图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

C++使用 new 来创建动态数组

问题&#xff1a; 不能使用变量定义数组大小 原因&#xff1a; 这是因为数组在内存中是连续存储的&#xff0c;编译器需要在编译阶段就确定数组的大小&#xff0c;以便正确地分配内存空间。如果允许使用变量来定义数组的大小&#xff0c;那么编译器就无法在编译时确定数组的大…...

tomcat指定使用的jdk版本

说明 有时候需要对tomcat配置指定的jdk版本号&#xff0c;此时&#xff0c;我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...

rknn toolkit2搭建和推理

安装Miniconda Miniconda - Anaconda Miniconda 选择一个 新的 版本 &#xff0c;不用和RKNN的python版本保持一致 使用 ./xxx.sh进行安装 下面配置一下载源 # 清华大学源&#xff08;最常用&#xff09; conda config --add channels https://mirrors.tuna.tsinghua.edu.cn…...

第八部分:阶段项目 6:构建 React 前端应用

现在&#xff0c;是时候将你学到的 React 基础知识付诸实践&#xff0c;构建一个简单的前端应用来模拟与后端 API 的交互了。在这个阶段&#xff0c;你可以先使用模拟数据&#xff0c;或者如果你的后端 API&#xff08;阶段项目 5&#xff09;已经搭建好&#xff0c;可以直接连…...