Vimスクリプト(invert ビット演算)

TVアニメ「私、能力は平均値でって言ったよね!」メインPV

アニメ『私、能力は平均値でって言ったよね!』

いかにも異世界転生のタイトル。本当多いですねえ異世界転生物。ファンタジーって謳ってしまえば、別に異世界転生設定しなくていいのにどうしても転生したいんでしょうね。私は輪廻転生信じてますが、異世界に飛ばされるのは嫌だな。戦や競争のない世界がいいです。ああ、競争は多かれ少なかれあるか。アニメですが、いい感じの女の子4人パーティーで、ドタバタかわいくレベルアップしていきます。まあ和みます。

OR ANDと学習してきたので、次はNOTかなと思ってヘルプを探しましたがみつかりません。
論理演算は、bitwise operationというらしいので、bitsizeでヘルプを探しました。

Other computation:                                      *bitwise-function*
        and()                   bitwise AND
        invert()                bitwise invert
        or()                    bitwise OR
        xor()                   bitwise XOR
        sha256()                SHA-256 hash

invert()、これっぽいですね。
使ってみます。

Vim起動して、

/tmp $ vim
:echo invert(1)

-2?
なぜに?

ヘルプを確認します。

invert({expr})                                          *invert()*
                Bitwise invert.  The argument is converted to a number.  A
                List, Dict or Float argument causes an error.  Example:
                        :let bits = invert(bits)

普通に使えると思いますが。。。

他の数字でもう一回。

:echo invert(100)


-101?
0から引いた後、マイナス1しているように見えます。

では、50を指定したら、-51になるでしょうか。

:echo invert(50)

-51になりましたが、ん〜どうにも理解できません。

コメント

タイトルとURLをコピーしました