我更喜欢编写脚本,所以需要一些帮助。
所以问题出现在我的一个脚本中,我正在做一个按位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
答案 0 :(得分:0)
您可以指定像$hex_number = 0xaf56
这样的十六进制数字,hex
将具有十六进制文本的字符串转换为等效数字,即$hex_number == hex 'af56'
。数字在计算机内部以二进制形式表示,它们将在您对它们执行的任何按位操作时正常运行。
只有当您打印一个数字时,您需要注意格式化的方式。默认情况下,数字以十进制打印,您可以使用带有%x
的{{1}}格式说明符以十六进制打印。