首页
社区
课程
招聘
[求助]有又懂PHP又会玩C/C++的大大么?help~~
发表于: 2009-2-5 16:52 4465

[求助]有又懂PHP又会玩C/C++的大大么?help~~

2009-2-5 16:52
4465
我这里有2个C++函数,但是由于项目需要,现在需要这2个函数的PHP版本。。能实现等效功能即可。。

作用是将二进制数据和ASCII字符串的相互转换

比如 A B C D 的二进制值是 41 42 43 44

BIN TO ASCII
我就把"ABCD"转成字符串"41424344"
ASCII TO BIN
我就把"41424344"转成字符串 "ABCD"

请问PHP怎么实现啊。。。。。

附2个C++版的函数实现。。。。

//Bin to Ascii
int Bin2ASCII(unsigned char *pIn, long lSize, char *pOut)
{

    for (long i=0; i<lSize; i++)
        sprintf(&(pOut[i*2]),"%02x", pIn[i]);
   
    return lSize * 2;
}

int ASCII2Bin(unsigned char *pIn, long lSize, unsigned char **ppOut)
{
    char szBuf[3];
   

    szBuf[2] = NULL;
    lSize/=2;
    for (long l=0;  l<lSize;  l++)
    {
        szBuf[0]    = pIn[l*2];
        szBuf[1]    = pIn[(l*2)+1];
        (*ppOut)[l] = (unsigned char)strtoul(szBuf, NULL, 16);
    }
   
    return lSize;
}

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 0
活跃值: (954)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
给个思路

字符串 -> 16

16  -> 字符串
2009-2-5 19:58
0
雪    币: 318
活跃值: (36)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
<?
echo chr(hexdec('41'));
//显示A
echo dechex(ord('A'));
//显示41
?>
2009-2-5 21:15
0
雪    币: 296
活跃值: (89)
能力值: ( LV15,RANK:340 )
在线值:
发帖
回帖
粉丝
4
PHP本来就有bin2hex,另外一个也可以用pack实现。

<?php

function hex2bin($data) {
    $len = strlen($data);
    return pack("H" . $len, $data);
}  

$str1 = 'ABCD';
$result = bin2hex($str1);
echo "BIN2HEX = " . $result . "<BR>";
echo "HEX2BIN = " . hex2bin($result);

?>

善用Google...
2009-2-5 23:08
0
雪    币: 53
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
多谢楼上各位大哥~~
2009-2-13 17:47
0
游客
登录 | 注册 方可回帖
返回
//