您的位置:

php实现各进制间的转换(php 进制转换)

本文目录一览:

PHP函数怎么把十进制转换为二进制

PHP decbin函数的作用是把十进制转换为二进制。

用法:

参数                                            描述

dec_number                      必需。规定要转换的十进制数。 

示例:

?php

echo decbin("3");

echo decbin("1");

echo decbin("1587");

echo decbin("7");

?

输出:

11

1

11000110011

111

php编程:将26位字母进制转换为10进制数字,如何做?

主要是加权法。

10进制结果=∑各位上的值*(进制数^各位权值)

a^b表示a的b次方。

比如你说的26进制

a-1

s-19

d-4

那么asd=1*(26^2)+19*(26^1)+4*(26^0)=1174(10进制)

如果是8进制数456=4*(8^2)+5*(8^2)+6*(8^0)=302(10进制)

分太少,不写源程序了,建立索引数组$arr[a]=1$,arr[b]=2..

再把输入的字母拆成单字符倒序数组使得$single[2]=a,$single[1]=s,$single[0]=d,按上面方法权值相加。

你懂的。

用PHP写一个进制转换的程序。增加如下图的一个表单,用PHP函数完成。10转2,10转8,10转16进制。

?php 

$frombase  = '';

$tobase  = '';

if($_POST){

$frombase  = $_POST['frombase'];

$type  = $_POST['type'];

switch ($type) {

case 1:

$tobase = base_convert($frombase, 10, 2);break;

case 2:

$tobase = base_convert($frombase, 10, 8);break;

case 3:

$tobase = base_convert($frombase, 10, 16);break;

}

}

?

form action="" method="post"

数:input type="text" name="frombase" value="?php echo $frombase;?" size="20" /

select name="type"

option value="1"10to2/option

option value="2"10to8/option

option value="3"10to16/option

/select

input type="submit" value="转换" /

input type="text" value="?php echo $tobase;?" size="20"/

/form

试试看是不是您想要的写法。

PHP 浮点进制转换

下面是php实现的方法:

/**

 * 十六进制浮点型转为十进制

 * @param String $strHex 十六进制浮点数

 */

function hexToDecFloat($strHex) {

$v = hexdec($strHex);

$x = ($v  ((1  23) - 1)) + (1  23) * ($v  31 | 1);

$exp = ($v  23  0xFF) - 127;

return $x * pow(2, $exp - 23);

}

你说得很高深的样子,又不举例,不知道你究竟需要把什么样子的数转换成什么,上面是例子看看是不是你要的吧,如果不是,请一定举例。

关于PHP进制转换的代码,求大神帮忙编写一下。 2 8 16 可以实现这三个进制之间转换的代码。

PHP内置进制转换函数:base_convert ,其详细调用如下:

string base_convert ( string $number , int $frombase , int $tobase )

返回一字符串,包含 number 以 tobase 进制的表示。number 本身的进制由 frombase 指定。frombase 和 tobase 都只能在 2 和 36 之间(包括 2 和 36)。高于十进制的数字用字母 a-z 表示,例如 a 表示 10,b 表示 11 以及 z 表示 35。

示例:

十六进制转换成为二进制:

?php

$hexadecimal = 'A37334';

echo base_convert($hexadecimal, 16, 2);

?