質問: &h1s
回答: 「&h」は16進数のリテラルを、「s」はshort型のリテラルを示しています。 したがって、 &h40sはshort型の16進数で40(10進数で64)の定数値、 &h1sはshort型の16進数で1(10進数でも1)の定数値、 を表しています。 質問のコードではどちらもlong型の変数に代入されているので型変換が生じます。 (わざわざ「s」を付けてる意味がありません。むしろ「l」を付けるべきです)