如何在不更改Perl值的情况下将字符串值转换为十六进制?

时间:2013-03-08 23:58:11

标签: perl

我有一个具有十六进制字符串值的变量。我希望Perl将其读作十六进制值,以便我可以对它进行一些补充。但我不希望改变价值。

例如:

$string = 'AB320000';

我想,

$hex = $string = 'AB320000';

所以我可以这样做:

 $hex + 0x10 + 0x20;

1 个答案:

答案 0 :(得分:3)

你不明白数学和计算机是如何工作的。您有十进制,十六进制和二进制 - 以及其他格式。这些仅仅是符号,表达数字的方式。计算机往往只与他们拥有基本操作组件的人一起工作。你所在的计算机可能需要二进制文件。所以这就是事情的发展方向。

  1. 你要给你的魔盒一个“字符串”。
  2. 你要告诉你的魔术盒这个字符串是十六进制格式的数字。
  3. 您的计算机将该字符串转换为可以操作的数字实现:如int或float - 但它将以二进制形式存储。
  4. 你将指示你的魔法盒做某事 - 比如计算那个int或float上的加法。
  5. 您将要求生成的数字以十六进制格式任意呈现。
  6. 这就是它的工作方式。所以问题是,

    1. 如何将十六进制字符串输入数字(在Perl中)?
      • 如果您在代码中使用文字,则完全按照0xFF等问题的方式进行。
    2. 如何添加整数(或浮点数等等,在Perl中)?
      • 提示:它只是您问题中使用的+运算符。
    3. 如何将整数渲染为十六进制字符串(在Perl中)?
      • 提示:printf( '%x', 255 )
    4. 并且,所有这些问题可能已在SO上得到解答。