重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
大整数需要用GMP模块,或者自己算法好可以写简单的累加,
创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站设计、网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的濮阳县网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
在php.ini中开启模块extension=php_gmp.dll
?php
$n = gmp_init('58915248108339c6ddca5553e9f266124e7af7c8',16); //16进制输入
$n = gmp_add($n,1); //加1
echo gmp_strval($n,16).'br/'; //16进制显示
$n = gmp_add($n,13869656); //加法
echo gmp_strval($n,16).'br/'; //16进制显示
输出
58915248108339c6ddca5553e9f266124e7af7c9
58915248108339c6ddca5553e9f266124f4e9a21
把文件里面的每一个字节的ascii码转成16进制就可以了,如下:
$content = file_get_contents("myfile");
$hex = "";
for($i=0;$i=strlen($content);$i++){
$asc = ord(substr($content,$i,1));
$hex .= dechex($asc);
}
file_put_contents("mynewfile",$hex);
十六进制转为二进制有两种理解方法,第一是十六进制字符串转二进制字符串,第二是十六进制数转二进制数,下面分别介绍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
还有 hexdec 这个函数number hexdec ( string $hex_string )
Example #1 hexdec() 例子
?php
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)"
?
//字符串转换成16进制
function str2hex($str){
$hex = '';
for($i=0,$length=mb_strlen($str); $i$length; $i++){
$hex .= dechex(ord($str{$i}));
}
return $hex;
}
//16进制转换成字符串
function hex2str($hex){
$str = '';
$arr = str_split($hex, 2);
foreach($arr as $bit){
$str .= chr(hexdec($bit));
}
return $str;
}
function test(){
//utf8字符测试
$str = '中文';
echo mb_strlen($str);
echo '';
$hex = str2hex($str);
echo $hex;
echo '';
$dec = hex2str($hex);
echo $dec;
echo "";
echo "hr";
//gbk测试
$gbkstr = mb_convert_encoding($str,'GBK','UTF-8');
echo mb_strlen($gbkstr);
echo '';
$hex = str2hex($gbkstr);
echo $hex;
echo '';
$dec = mb_convert_encoding(hex2str($hex), 'UTF-8', 'GBK');
echo $dec;
echo "";
}