假设我在perl中有一个字符串。
$a = "001010";
在操作按位非运算符后,结果应为
~$a = "110101";
我怎样才能在perl中执行此操作?
答案 0 :(得分:8)
或者只使用tr///
:
$str =~ tr/01/10/;
答案 1 :(得分:2)
一种解决方案是使用正则表达式:
$a = "001010";
$a =~ s/([01])/1-$1/eg;
答案 2 :(得分:0)
您可以使用oct
和sprintf
:
$a = sprintf("%0".(length($a))."b", (~oct("0b".$a)) & (1 << length($a)) - 1);
答案 3 :(得分:0)
有多种方法可以做到:
$str = join '' => map 0+!$_, split //, $str;