左端のビットはマイナス符号として解釈される場合とされない場合があります。
今回の例で言いますと、私の環境でのclrの内容を
16進数($AARRGGBB形式)と10進数、そして2進数で表しますと、
16進数:$E3006FC7
10進数:-486510649
2進数:11100011 00000000 01101111 11000111
となります。
この値をmes命令でそのまま10進数形式で表示した場合は
「左端のビットはマイナス符号である」と解釈されますが、
「透明度と赤と緑と青の値を$AARRGGBB形式で表す」という用途の場合では
「左端のビットはマイナス符号である」とは解釈されません。
これを"clr>>16"で右ビットシフト(算術シフト)すると、
2進数:11111111 11111111 11100011 00000000
16進数:$FFFFE300
10進数:-7424
この通り、上位16ビットが1で埋められ、これを10進数で表したのが
NO.92174で出てきた-7424です。
そして、"& $FF"というのは「最下位の8ビットだけを残してあとは全部0にする」
という作業であり、これを実行すると、
・r
2進数:00000000 00000000 00000000 00000000
16進数:$00000000
10進数:0
このようにして$AARRGGBB形式の16進数からRRの部分を取り出しています。
同様にして、AAやGGやBBを$E3006FC7から取り出すと、
・a
2進数:00000000 00000000 00000000 11100011
16進数:$000000E3
10進数:227
・g
2進数:00000000 00000000 00000000 01101111
16進数:$0000006F
10進数:111
・b
2進数:00000000 00000000 00000000 11000111
16進数:$000000C7
10進数:199