perl - 编写 Perl 脚本来计算 8 位整数的补码

标签 perl

<分区>

我编写了一个 Perl 脚本,它接受一个输入的十六进制值,然后返回等效的二进制值。我需要为该 8 位整数签名并查看带符号整数的值。我所看到的 Perl 文档中似乎没有涵盖这种特殊情况。脚本粘贴在下面:

    #! perl
    use warnings;
    print "Enter hexidecimal number:";
    chomp ($hexNum = <STDIN>);
    print $hexNum . "\n";
    print  join "\n", map { unpack ('B*', pack ('H*',$_)) } split ':', 
    $hexNum;

这个问题与其他条目不同(特别是 Converting hexadecimal numbers in strings to negative numbers, in Perl 因为它专门处理 8 位整数,而不是简单地转换为十进制。

最佳答案

数字 $n 的补码就是 -$n。要将结果限制为 8 位,请使用 (-$n)&0xff 屏蔽掉其余部分。

关于perl - 编写 Perl 脚本来计算 8 位整数的补码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36093692/

相关文章:

perl - Data::Dumper 包装第二个单词的输出

perl - 这个 perl 代码中 $_ 在哪里被修改?

perl - 你能有一个没有 .pm 标签的 Perl 类吗?

perl - 为什么我会收到有关在以下 Perl 脚本中使用未初始化值的警告?

regex - 多行正则表达式应在文件中匹配多次(如果可能,单行命令)

perl - 我可以在不先将对象保存到变量的情况下调用 Perl OO 函数吗?

linux - 在perl中拆分和过滤linux命令的输出

multithreading - 如何共享包含文件句柄的对象?

perl - 如何在不截断记录的情况下将大文本文件拆分成大小均匀的部分?

regex - 从 Perl 中的字符串中删除换行符