本文目录一览:
- 1、PHP 进制转换问题
- 2、怎样在PHP中把16进制HEX数据转换为2进制数据呢?
- 3、关于PHP进制转换的代码,求大神帮忙编写一下。 2 8 16 可以实现这三个进制之间转换的代码。
- 4、求将十进制数转为十六进制数的JS或PHP代码
- 5、PHP 浮点进制转换
- 6、求解 使用php将1000位的十进制大数转成二进制
PHP 进制转换问题
echo base_convert(10010011001101011010101001000000,2,10)."\r\n";//输出 18843
你把 10010011001101011010101001000000 换成 字符串形式的就对了
"10010011001101011010101001000000"
怎样在PHP中把16进制HEX数据转换为2进制数据呢?
十六进制转为二进制有两种理解方法,第一是十六进制字符串转二进制字符串,第二是十六进制数转二进制数,下面分别介绍2种转换方法:
1.hex2bin函数可以将十六进制字符串转换为二进制字符串,详细用法如下:
hex2bin — 转换十六进制字符串为二进制字符串
string hex2bin(string $data)
转换十六进制字符串为二进制字符串。
参数:
data:十六进制表示的数据
返回值:
返回给定数据的二进制表示 或者在失败时返回 FALSE。
异常:
如果输入的十六进制字符串是奇数长数或者无效的十六进制字符串将会抛出E_WARNING 级别的错误。
示例:
$hex = hex2bin("6578616d706c65206865782064617461");
echo $hex;//example hex data(其中16进制代表的是ascii码)
2.base_convert是真正意义上的进制转换函数
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。
参数:
number:要转换的数字
frombase:原始进制
tobase:转换后的进制
示例:
$hexadecimal = 'A37334';
echo base_convert($hexadecimal, 16, 2);//101000110111001100110100
关于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);
?
求将十进制数转为十六进制数的JS或PHP代码
JS十进制转其他进制代码如下var m = 10;document.write(m.toString(2) + "br"); // 显示为 1010 二进制document.write(m.toString(8) + "br"); // 显示为 12 8进制document.write(m.toString(10) + "br"); // 显示为 10 十进制document.write(m.toString(16) + "br"); // 显示为 a, 十六进制 php转换函数如下:bindec() — 二进制转换为十进制
decbin() — 十进制转换为二进制
dechex() — 十进制转换为十六进制
decoct() — 十进制转换为八进制
hexdec() — 十六进制转换为十进制
octdec() — 八进制转换为十进制
base_convert()– 在任意进制之间转换数字使用说明如下: 一,十进制(decimal system)转换函数说明
1,十进制转二进制 decbin() 函数,如下实例echo decbin(12); //输出 1100
echo decbin(26); //输出 11010
decbin
(PHP 3, PHP 4, PHP 5)
decbin -- 十进制转换为二进制
说明
string decbin ( int number )
返回一字符串,包含有给定 number 参数的二进制表示。所能转换的最大数值为十进制的 4294967295,其结果为 32 个 1 的字符串。2,十进制转八进制 decoct() 函数echo decoct(15); //输出 17
echo decoct(264); //输出 410
decoct
(PHP 3, PHP 4, PHP 5)
decoct -- 十进制转换为八进制
说明
string decoct ( int number )
返回一字符串,包含有给定 number 参数的八进制表示。所能转换的最大数值为十进制的 4294967295,其结果为 "37777777777"。3,十进制转十六进制 dechex() 函数echo dechex(10); //输出 a
echo dechex(47); //输出 2f
dechex
(PHP 3, PHP 4, PHP 5)
dechex -- 十进制转换为十六进制
说明
string dechex ( int number )
返回一字符串,包含有给定 number 参数的十六进制表示。所能转换的最大数值为十进制的 4294967295,其结果为 "ffffffff"。二,二进制(binary system)转换函数说明
1,二进制转十六制进 bin2hex() 函数$binary = "11111001";
$hex = dechex(bindec($binary));
echo $hex;//输出f9
bin2hex
(PHP 3 = 3.0.9, PHP 4, PHP 5)
bin2hex -- 将二进制数据转换成十六进制表示
说明
string bin2hex ( string str )
返回 ASCII 字符串,为参数 str 的十六进制表示。转换使用字节方式,高四位字节优先。2,二进制转十制进 bindec() 函数echo bindec(\\\'110011\\\'); //输出 51
echo bindec(\\\'000110011\\\'); //输出 51
echo bindec(\\\'111\\\'); //输出 7
bindec
(PHP 3, PHP 4, PHP 5)
bindec -- 二进制转换为十进制
说明
number bindec ( string binary_string )
返回 binary_string 参数所表示的二进制数的十进制等价值。
bindec() 将一个二进制数转换成 integer。可转换的最大的数为 31 位 1 或者说十进制的 2147483647。PHP 4.1.0 开始,该函数可以处理大数值,这种情况下,它会返回 float 类型。三,八进制(octal system)转换函数说明
八进制转十进制 octdec() 函数echo octdec(\\\'77\\\'); //输出 63
echo octdec(decoct(45)); //输出 45
octdec
(PHP 3, PHP 4, PHP 5)
octdec -- 八进制转换为十进制
说明
number octdec ( string octal_string )
返回 octal_string 参数所表示的八进制数的十进制等值。可转换的最大的数值为 17777777777 或十进制的 2147483647。PHP 4.1.0 开始,该函数可以处理大数字,这种情况下,它会返回 float 类型。四,十六进制(hexadecimal)转换函数说明
十六进制转十进制 hexdec()函数var_dump(hexdec("See"));
var_dump(hexdec("ee"));
// both print "int(238)"
var_dump(hexdec("that")); // print "int(10)"
var_dump(hexdec("a0")); // print "int(160)"
hexdec
(PHP 3, PHP 4, PHP 5)
hexdec -- 十六进制转换为十进制
说明
number hexdec ( string hex_string )
返回与 hex_string 参数所表示的十六进制数等值的的十进制数。hexdec() 将一个十六进制字符串转换为十进制数。所能转换的最大数值为 7fffffff,即十进制的 2147483647。PHP 4.1.0 开始,该函数可以处理大数字,这种情况下,它会返回 float 类型。
hexdec() 将遇到的所有非十六进制字符替换成 0。这样,所有左边的零都被忽略,但右边的零会计入值中。五,任意进制转换 base_convert() 函数$hexadecimal = \\\'A37334\\\';
echo base_convert($hexadecimal, 16, 2);//输出 101000110111001100110100
base_convert
(PHP 3 = 3.0.6, PHP 4, PHP 5)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 浮点进制转换
下面是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将1000位的十进制大数转成二进制
下面的代码测试通过的,我只用几10位进行测试,理论上成千上万位结果也是正确的,供你参考,算法比较笨蛋(完全模仿人工的除2取余):
?php
//超大整数(10进制)转换为二进制数
$n='12121111111141417908308410289576890247569807456709384756890743906790486790845';
//$n='15';//1111
//$n='257';//100000001
$r='';//结果
while ($n){
//$n整除2,商$m、余数$k
$k=0;
$m='';
do{
$k=$k*10 + substr($n,0,1);
if ($m!='' || $k1) $m.=floor($k/2);
$k=$k % 2;
$n=substr($n,1);
//$r=$k . $r;
}while($n!='');
//echo "r=$r;m=$m\n";//break;
//下一轮除法
$n=$m;
$r=$k . $r;
}
echo $r;
?