Perl 在执行逐位操作之前,是否需要打包/解包从二进制文件读取的数据?
我已将二进制文件中的两个字节读入$data,现在需要执行按位and运算 但当我这么做的时候Perl 在执行逐位操作之前,是否需要打包/解包从二进制文件读取的数据?,perl,Perl,我已将二进制文件中的两个字节读入$data,现在需要执行按位and运算 但当我这么做的时候 if (($data & "\x100") != 0) { 我得到错误参数“@\0”在数值ne(!=)中不是数值 我应该先转换$data吗?为什么要使用字符串进行二进制操作 使用($data&0x100)!=0,如果需要,将$data转换为数字。为什么要使用字符串进行二进制操作 使用($data&0x100)!=0,如有必要,将$data转换为数字。是的,如果有两个文本字节应解释为16位数字,则
if (($data & "\x100") != 0) {
我得到错误参数“@\0”在数值ne(!=)中不是数值
我应该先转换$data吗?为什么要使用字符串进行二进制操作
使用
($data&0x100)!=0
,如果需要,将$data
转换为数字。为什么要使用字符串进行二进制操作
使用
($data&0x100)!=0
,如有必要,将$data
转换为数字。是的,如果有两个文本字节应解释为16位数字,则需要将其解包
除此之外,还有ThiefMaster所说的。是的,如果您有两个文本字节,应该解释为16位数字,则需要将其解包
最重要的是,盗贼大师说的话没有用。怎么办?你能告诉我们你试过什么吗
perl-le'print unpack(“H*”,“\x01\xFF”)”
做了我所期望的。我做了$flags=unpack'H*,$data),但是当我尝试按位执行时,它说参数“c280”不是按位的数字,(&)如何工作?你能告诉我们你试过什么吗perl-le'print unpack(“H*”,“\x01\xFF”)”
达到了我的预期效果。我做了$flags=unpack'H*,$data),但当我尝试按位and时,它说参数“c280”不是按位and(&)的数字