求编写一段php代码,对php的数据类型还不太熟

2012-10-04 21:47:23 +08:00
 jacy
平常只会用到十进制的整型和字符串,现在要写个程序,用到了16进制,遇到了困难:
把一个数字(比较长,整型不够)转换成16进制,然后从末尾开始每两位分割,把整个数字倒过来,然后在末尾加上0000,最后的结果是以每两位作为一个字符的字符串。
比如一个数10153302696068,转换成16进制是93C00002084,最后我要的结果是 $str='\x84\x20\x00\x00\x3C\x09\x00\x00'
谢谢哦
2316 次点击
所在节点    问与答
1 条回复
jacy
2012-10-04 23:42:57 +08:00
好吧,没人回复,自己搞定了
<?php
$in = 10153302696068;
$s1 = base_convert($in, 10, 16);
$len = strlen($s1);
$add = 16 - $len;
$s2 = str_repeat('0', $add) . $s1;
$s3 = str_split($s2, 2);
$s4 = array_reverse($s3);
foreach ($s4 as $s) {
$str = $str.chr(dexhex($s));
}
echo $str;
?>
刚开始用的dechex(),发现输出结果只有四位,后来查手册才知道有上限。php还是有很多函数不了解啊。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/49236

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX