はじめまして。
現在、VC++6.0を使ってプログラミングをしています。
初心者なのでよく分からない点があり、質問に来ました。
えっと、ドライブの取得をする『GetLogicalDrives関数』についてですが、
これの説明によく『ビットマスク形式』というのが使われています。
これはいったいどういう形式なんでしょうか?
よかったら教えてください。
この質問でこのスレッドタイトルはやばめですね。まあいいですけど。
ビットマスク形式ですが、
その数字を2進数であらわしたときに
ビットがたっているかたっていないかを使うことで
ひとつの数字で複数の「あるかないか」の情報をあらわすやり方です。
GetLogicalDrivesの場合、
最下位ビットがAドライブで使用できるドライブのビットがたつので、
たとえばA,C,Dドライブが使用できるならば
1101
DCBA
で、0x0D(っていうか13)が返って来ます。
例えばこの関数の戻り値 dwRetが
01100011 だったとしましょう。
dwRet & 00000001 が != 0 であれば Aドライブは利用可能
dwRet & 00000010 が 〃 Bドライブ 〃
このように、各1ビットのマスク (&)が独立に意味を持つことを
いうのだと思います。
この戻り値の場合、有効ドライブは(左から1を読み上げれば)
A, B, F, G となります。
説明がイマイチですね。m(__)m
どこがTreeViewについてなのかな?(@_@?
でわでわ。(^_^;
○ごうち● でした。
>この戻り値の場合、有効ドライブは(左から1を読み上げれば)
LSBからなら 右から でした。m(__)m
○ごうち●@失敗 でした。
ありがとうございました、PAIさん、○ごうち●さん。
参考にさせてもらいます!
ちなみにPAIさん、スレッドタイトルとは・・・?
勉強してまいります。
>スレッドタイトルとは
どうでもいいですが、
treeviewについて
という名前のことです。
ここで質問してるのはビットマスクについてなので
ふさわしくないんじゃないでしょうか?
経緯としてはつながってるのかもしれませんけど、
”アメリカの首都はどこですか?”
っていう質問に
”太陽系について”
ぐらいのタイトルがついてて、見る人を混乱させますよ。
ありがとうございました。
以後、気を付けます。