Slide 1

Slide 1 text

Tadpole operators ⾮変インクリメント/デクリメント

Slide 2

Slide 2 text

Tadpole Operators†とは? • 副作⽤を起こさないインクリメント/デクリメントのこと • ⽇本語では⾮変インクリメント / ⾮変デクリメント • ⾒た⽬からtadpole(おたまじゃくし)演算⼦とも 値が書きかわらない 演算⼦ 同じ意味の式 意味 -~x X + 1 Xに向かって値が⼊って いくイメージ ~-x X - 1 Xから値が出ていく イメージ †https://devblogs.microsoft.com/oldnewthing/20150525-00/?p=45044

Slide 3

Slide 3 text

Tadpole Operators:利点 • 単項演算⼦なので優先順位が⾼い • (x + 1) * (x - 1) なら -~x * ~-x と書ける • インクリメント/デクリメントと違い副作⽤がない

Slide 4

Slide 4 text

ネタバラシ シンキングタイムいる?

Slide 5

Slide 5 text

ネタバラシ • 本当は`~`(ビット反転)と`-`(符号反転)の組み合わせ • かっこで整理すると ‒(~x)、~(-x)に -(~x) == x+1 ~x + 1 == -x を常に満たす x + ~x + 1 == 0 X=5 0101 0011 Y=~X +1010 1100 Z=X+Y 1111 1111 α=Z+1 + 1 β 1 0000 0000 ビット 反転 移項 β α