-1

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

例如:

$string = 'AB320000';

我想,

$hex = $string = 'AB320000';

这样我就可以做到:

 $hex + 0x10 + 0x20;
4

1 回答 1

3

你不明白数学和计算机是如何工作的。你有十进制、十六进制和二进制——以及其他格式。这些只是符号,表示数字的方式。计算机往往只与他们有基本组件来操作的计算机一起工作。您使用的计算机可能需要二进制文件。所以这就是事情的运作方式。

  1. 你要给你的魔法盒一个“字符串”。
  2. 你要告诉你的魔法盒这个字符串是十六进制格式的数字。
  3. 您的计算机会将该字符串转换为它可以操作的数字实现:例如 int 或 float——但它将以二进制形式存储。
  4. 你将指示你的魔法盒做一些事情——比如计算那个 int 或 float 的加法。
  5. 您将要求以十六进制格式任意呈现结果数字。

这就是它必须工作的方式。所以问题是,

  1. 如何将十六进制字符串转换为数字(在 Perl 中)?
    • 如果您在代码中使用文字,则完全按照您在问题中所做的方式0xFF等。
  2. 如何在 Perl 中添加整数(或浮点数或其他)?
    • 提示:它只是+您的问题中使用的运算符。
  3. 如何将整数呈现为十六进制字符串(在 Perl 中)?
    • 暗示:printf( '%x', 255 )

而且,所有这些问题可能已经在 SO 上得到了回答。

于 2013-03-09T00:07:29.963 回答