154の触りだけ読んでみた。
>+1は上位ビットの反転を意味してる。
(3m)+1は偶数となり2で割るので結局のところ正の再上位ビットの反転を意味してる。(という解釈で良いのかな?)
ですが-n-1=(not)n=3(not)m/2ということは、負の整数であり-1により負の再上位(下位?)ビットを反転させ
負の方向へ(マイナス)1ビット繰り下がってしまう(RoR:rotate right)ような気がする
そんな訳で-n-1は負の方向へ無限に発散してしまうような?
(間違えていたら申し訳ないです)

あと途中でint型とchar型が混在している?ような感覚により混乱しました。

しかしながらちょこっと改良したら新しく何だかとても良い何かが生み出されそう
そんな印象を受けました。