今天开始学习PHP-关于进制转换

  • Post author:
  • Post category:php


今天看了一些基础语法,什么二进制,六进制,八进制,十六进制的实在有点理解不了,所以就直接记录下来,方便以后需要可以随时调用。

整数类型

整数类型:保存整数数值(范围限制),4个字节存储数据,最大就是32位:42亿多。但是在PHP中默认是有符号类型(区分正负数)

在PHP中提供了四种整型的定义方式:十进制定义,二进制定义,八进制定义和十六进制定义

$a = 120; //10进制

$a=0b110; //2进制

$a=0120; //8进制

$a=0x120; //16进制

在这里插入图片描述

十进制:逢10进1,能够出现的数字是0-9

二进制:逢2进1,能够出现的数字是0-1

八进制:逢8进1,能够出现的数字是0-7

十六进制:逢16进1,能够出现的数字是0-9以及a-f,a表示10,依次类推

进制转换:手动转换

10进制转二进制:除2倒取余法

在这里插入图片描述

不管得到的结果如何,需要补足32位:前面补0:00000000 00000000 00000000 00001010

10进制转二进制:取出最大的2的N次方,直到结果为0

在这里插入图片描述

二进制到十进制之间的转换:从右侧开始,将对应的第几位作为2的指数,然后将所有的结果相加

在这里插入图片描述

PHP中不需要用户这么复杂的去计算,提供了很多的函数进行转换

Decbin():十进制转二进制

Decoct():十进制转八进制

Dechex():十进制转十六进制

Bindec():二进制转十进制

在这里插入图片描述

下面是关于进制的练习:


实现页面转换进制问题。


下拉框选项:二进制,八进制,十六进制

提高要求:填写完输入框值转换后,对用的输入框还保留原来的值,该怎么做?

在这里插入图片描述

答案:

<?php
$values = '';
if(!empty($_POST)){
	$num = $_POST['num'];
	$zhuanhuan = $_POST['zhuanhuan'];
	if($zhuanhuan == 2){
		$values = decbin($num);
	}elseif($zhuanhuan == 8){
		$values = decoct($num);
	}else{
		$values = dechex($num);
	}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>简历</title>
</head>
<body>
	<form action='' method="post">
		十进制:<input type="text" name="num">
		请选择要转换的进制:
		<select name="zhuanhuan" id="">
			<option value="2">二进制</option>
			<option value="8">八进制</option>
			<option value="16">十六进制</option>
		</select>
		<input type="submit" value="转换">
		转换结果:<input type="text" value="<?php echo $values ;?>"><br>
	</form>
</body>
</html>



版权声明:本文为qq_16416957原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。