[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2007/07/19(Thu) 13:33
投稿者名:コンドル
Eメール:
URL :
タイトル:
Cの "#define XXX (1<<0)" をVBで定義したい
初めて書き込みさせていただきます

USB用のUUSBDというドライバを使うため
Cで作成されたサンプルプログラムを参考に
VB6を使いプログラムを作成しているのですが
サンプルのCの記述に

#define XXX (1<<0)
#define XXX (1<<1)
#define XXX (1<<2)

というものがあり、括弧の中の(1<<0)などの意味がわからなくて困っています
Cの知識があまりなく、Googlなどでどんな意味なのか探そうとしても
"<"(不等号)を検索キーに入れることができないため、うまく探し出せません
VBの質問になるのかどうか微妙ですが、わかる方教えていただけないでしょうか?
よろしくお願いします

投稿時間:2007/07/19(Thu) 15:13
投稿者名:よねKEN
Eメール:
URL :
タイトル:
Re: Cの "#define XXX (1<<0)" をVBで定義したい
> というものがあり、括弧の中の(1<<0)などの意味がわからなくて困っています

<<や>>はビットシフトの演算子ですね。
<<は左シフト、>>は右シフトです。

ビットシフト、算術シフト、論理シフトなどで検索してください。
解説ページが引っかかります。

(1<<0) → 1
(1<<1) → 2
(1<<2) → 4

ですね。ビットマスクとして使われる定数でしょう。

↓ちょっと古い記事ですが、VBでビットマスクの考え方が利用されている例を扱っています。
http://www5b.biglobe.ne.jp/~yone-ken/VB/BinHexDec2.html

投稿時間:2007/07/19(Thu) 18:11
投稿者名:コンドル
Eメール:
URL :
タイトル:
Re^2: Cの "#define XXX (1<<0)" をVBで定義したい
<<は左シフトを表していたんですね!
アセンブラをやっているのでビットのシフトに関しては多少わかります

これで先に進めます
ありがとうございました!