如何对一个变量进行按位取反?

编程语言 2026-07-09

我正在做一个计算器,想让它把按位取反作为一个函数实现。该怎么做?

以下是代码:

my $val1 = <STDIN>;

print ~$val1, "\n";

如果我输入 5,它会输出 "��"。

解决方案

对数字进行按位取反

518446744073709551610[1]

Perl版本 Pragma 表达式
任意 ~$val[2]
任意 ~( 0 + $val)
5.22+ use experimental qw( bitwise );[3] ~$val
5.28+ use feature qw( bitwise ); ~$val
5.28+ use v5.28; ~$val
  1. 假设构建使用64位整数。
  2. $val 必须在内部以数字形式存储(而不是字符串)。
  3. 虽然当时是实验性质,但在这些较旧的版本中也可以安全使用。

对字符串的每个字节进行按位取反

"\x05\x06""\xFA\xF9"

Perl版本 Pragma 表达式
任意 ~$val[1]
任意 ~"$val"
5.22+ use experimental qw( bitwise );[2] ~.$val
5.28+ use feature qw( bitwise ); ~.$val
5.28+ use v5.28; ~.$val
  1. $val 必须在内部以字节串形式存储。
  2. 虽然当时是实验性质,但在这些较旧的版本中也可以安全使用。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章