十六进制位和操作

时间:2018-02-12 13:51:23

标签: perl

我更喜欢编写脚本,所以需要一些帮助。

所以问题出现在我的一个脚本中,我正在做一个按位AND操作,但我收到了错误的数据。

详细阐述:

$value have a hex value 0xffffffc0.

我已经做了一些grepping,并且我在$ pattern中存储了十六进制值。

所以我需要做和$ value&的操作$ pattern但是得到错误的数据,因为无论我传递的$ value如何转换为十进制值。

$value = hex '0xffffffc0' ;
print $value;
$pattern = 0x35040 ; ####this value will be from the grepping#### 
$pattern1 = $pattern & 0xfffffffc;

print "$pattern1\n";

我看到的是O / P:35008

1 个答案:

答案 0 :(得分:0)

您可以指定像$hex_number = 0xaf56这样的十六进制数字,hex将具有十六进制文本的字符串转换为等效数字,即$hex_number == hex 'af56'。数字在计算机内部以二进制形式表示,它们将在您对它们执行的任何按位操作时正常运行。

只有当您打印一个数字时,您需要注意格式化的方式。默认情况下,数字以十进制打印,您可以使用带有%x的{​​{1}}格式说明符以十六进制打印。