将ASCII TEXT转换为二进制

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将ASCII TEXT转换为二进制相关的知识,希望对你有一定的参考价值。

我必须将ASCII文件转换为二进制文件。 ASCII文件包含ASCII格式的十二位十六进制数字。对于123456789ABC的输入字符串,我需要输出0x12 0x34 0x56 0x78 0x9a 0xbc的六字节。这是有效的解决方案。谢谢您的帮助。

my $filename = 'Hub_Device_ID.txt';
my $outfile= 'Hub_Device_ID.bin';
open(my $fh, '<:encoding(UTF-8)', $filename)
         or die "Could not open file '$filename' $!";
open(my $of, '>:raw', $outfile)
         or die "Could not open file '$outfile' $!";
  binmode($of);

  while (my $row = <$fh>){

    chomp $row;
    print "Chomped row
";
    print $row, "
";


    my $bytes = pack 'H*', $row;
    print $bytes, "
";
    print $of $bytes;


    close $of;
    close $fh;

    print "Done
";

}

答案

我相信你想转换

my $hex = "0123456789aBcDeF";

my $bytes = "x01x23x45x67x89xABxCDxEF";

要做到这一点,只需使用

my $bytes = pack 'H*', $hex;

以上是关于将ASCII TEXT转换为二进制的主要内容,如果未能解决你的问题,请参考以下文章

Perl程序将二进制转换为ascii

使用任何开源代码或工具将大型机二进制文件转换为 Ascii

将二进制转换为 ASCII,反之亦然

使用'xxd'进行二进制到ASCII转换

将十进制转换为 ASCII

在 Arduino 中不使用 String 对象将二进制数据转换为其 ASCII 等价物