なぜビットかと言われると正確な説明は意外と難しいですが、一言でいうと「ビットを分けることで複数のパラメータを1変数にまとめると、効率的だから」じゃないかと私は思ってます。 効率化好きなプログラマの性質ですね。 アトリビュートの引数って結局「表示on/off」「回転4種」「横反転有無」「縦反転有無」という独立した4つの情報なので、本当はこれらをバラバラに4つの引数として受け取った方が直感的には分かりやすいと思います。 でも、これらの情報って大体ワンセットで扱うので、もし一つの変数にパッキングできればプログラム内でコピーしたり受け渡したりする時も、一変数で済んでラクチンなのです。