重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
PHP内置进制转换函数:base_convert ,其详细调用如下:
创新互联建站长期为千余家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为上城企业提供专业的网站设计制作、网站建设,上城网站改版等技术服务。拥有10多年丰富建站经验和众多成功案例,为您定制开发。
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);
?
十六进制转为二进制有两种理解方法,第一是十六进制字符串转二进制字符串,第二是十六进制数转二进制数,下面分别介绍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
echo base_convert(10010011001101011010101001000000,2,10)."\r\n";//输出 18843
你把 10010011001101011010101001000000 换成 字符串形式的就对了
"10010011001101011010101001000000"
return $jg;
返回的$jg值是$jg=$sixteen[$yushu].$jg;
而$jg是在数组中获取$sixteen[$yushu]的值
其实应该是$sixteen[$yushu-1]的值
所以返回只有一位 要修复一下
除了余数还得判断得数和16的进位问题
strtr(),这个函数,替换,将0替换成\x0,就ok了,再加一个if(){}判断,记得用==,true接下干啥,false输出error()。