首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP中的64个二进制字符串到16个字符的十六进制

PHP中的64个二进制字符串到16个字符的十六进制
EN

Stack Overflow用户
提问于 2018-06-21 23:28:17
回答 1查看 216关注 0票数 0

我有一个64个字符的字符串,如下所示:我需要以我认为是18个字符长度的十六进制字符串结束:0100101000000011111010000101010000111101000011010100010000100110084a0002d43d0d4426

当前在C#中执行此操作的代码如下所示:

代码语言:javascript
复制
private string BinaryStringToHexString(string binary)
{
    StringBuilder result = new StringBuilder(binary.Length / 8 + 1);

    for (int i = 0; i < binary.Length; i += 8)
    {
        string eightBits = binary.Substring(i, 8);
        result.AppendFormat("{0:X2}", Convert.ToByte(eightBits, 2));
    }

    return result.ToString();
}

我试图弄清楚PHP是如何实现这一点的,但在php中使用dechexbinhex函数时,格式并不相似。这是我目前在PHP中的尝试:

代码语言:javascript
复制
$fullStringToEncode = '0100101000000011111010000101010000111101000011010100010000100110';

for ($i = 0; $i < strlen($fullStringToEncode); $i = $i + 8) {
    $eightBits = substr($fullStringToEncode, $i, 8);
    $result .= sprintf("%02X", dechex($eightBits));
}

上面的php代码给了我17个字符长度的020282220222124a2

这是基于几天的谷歌搜索并试图弄清楚的。有人能看出我哪里错了吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-22 00:48:13

您当前拥有的输入字符串0100101000000011111010000101010000111101000011010100010000100110将被转换为4A03E8543D0D4426,您可以使用您拥有的C#代码片段来确认这一点,或者手动进行转换。为了生成084a0002d43d0d4426,您的输入应该是000010000100101000000000000000101101010000111101000011010100010000100110

也就是说,dechex(int $number)返回一个string,其中包含$numberhex表示。您可以使用bindec( string $binary_string)代替dechex,它将返回由$binary_string参数表示的二进制数的十进制等价物。修改代码以使用bindec

代码语言:javascript
复制
<?php
    $fullStringToEncode = '000010000100101000000000000000101101010000111101000011010100010000100110';

    $result = '';
    for ($i = 0; $i < strlen($fullStringToEncode); $i = $i + 8) {
        $eightBits = substr($fullStringToEncode, $i, 8);
        $result .= sprintf('%02X', bindec($eightBits));
    }
    echo $result;
?>

输出:

代码语言:javascript
复制
084A0002D43D0D4426
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50972291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档