【最大10000ポイント】当たる!!質問投稿キャンペーン!

他の人が作ったプログラムの修正を行っていたところ、下記のような記述がありました。
このような Or や And の使われ方はどのようなことを意味するのでしょうか?
(gStatusはintegerです。)

記述(1)
gStatus = gs_Status Or &H2

記述(2)
If (gStatus And &H2) = &H2 Then
'処理
End IF


宜しくお願い致します。

A 回答 (1件)

&H2は、16進数の「2」をあらわします。


ご質問のケースでは、BIT1の状態を制御、確認しています。
記述(1)
gs_Status のBIT1をONしている。
記述(2)
gs_Status のBIT1がONか、どうか判断している。
(gs_Status をBIT1でマスク(BIT1の情報のみを抽出))し、
BIT1と比較している。
16進数・2進数・論理演算を学習されては?
http://f1.aaa.livedoor.jp/~zahyou/oldvb/ronri.htm
http://www5b.biglobe.ne.jp/~yone-ken/VB/BinHexDe …
http://www5b.biglobe.ne.jp/~yone-ken/VB/BinHexDe …
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございました。

ご提示頂いたリンク先も大変参考になり、すっきりと理解することができました。
ありがとうございます。

お礼日時:2008/03/11 11:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q16進数の変換処理

VisualBasic6.0で
Val("&H" & "F")
を実行すると、15

Val("&H" & "FF")
を実行すると、255

Val("&H" & "FFF")
を実行すると、4095

Val("&H" & "FFFF")
を実行すると、-1

Val("&H" & "FFFFF")
を実行すると、1048575

という結果が得られます。

なぜ”FFFF”の時に”-1”が返ってくるのでしょうか?
また、どうやったら、
”FFFF”から”65535”が得られるのでしょうか?

教えてください。
よろしくお願いします。

Aベストアンサー

VAL関数
指定した文字列に含まれる数値を適切なデータ型に変換して返します。

FFFFは、INT型で扱える最大値なのでINT型と判定されます。
cint("&H"+"FFFF")だと、-1が返ります。
FFFFFは、INTの扱える値を超えたのでLONG型で判定される為に1048575と言う結果になるのです。
では、なぜマイナスになるのか?
FFFFを2進数で表すと以下のようになりますね。
11111111 11111111 11111111 11111111
↑先頭の1バイト目が1だとマイナスとして扱われます。

以上です。

Qコンパイルエラー:ユーザ定義型は定義されていません、と出るのですがどのライブラリファイルかわかりません。

VB6で以前誰かが作ったプログラムの修正をしているのですが、コンパイルができません。

コンパイルエラー:ユーザ定義型は定義されていません。と表示されてしまします。

参照設定のライブラリファイルにチェックを入れればいいと思うのですが、どのライブラリファイルにチェックを入れればいいのかわかりません。
どなたか教えていただけないでしょうか?

現在チェックが入れてあるのは
Visual Basic For Applications
Microsoft Access 10.0 Object Library
OLE Automation
Microsoft Visual Basic for Applications Extensibility5.3
Microsoft DAO3.6 Object Library
の五つです。

ソースは以下のとおりです。

-------------------------------------------
Private Sub timTimer_Timer()
Dim objCmpct As PharmitCompact

timTimer.Enabled = False

Set objCmpct = New PharmitCompact
objCmpct.DatabaseFolder = App.path & "\Database"
objCmpct.DBCompactType = phrCmpTypeAll
objCmpct.Exec
Set objCmpct = Nothing

Unload Me

End Sub
---------------------------------------------
上のソースで
objCmpct As PharmitCompact
の部分の色がエラーで変化します。

原因が違っていたらごめんなさい。
どうぞよろしくお願い致します。

VB6で以前誰かが作ったプログラムの修正をしているのですが、コンパイルができません。

コンパイルエラー:ユーザ定義型は定義されていません。と表示されてしまします。

参照設定のライブラリファイルにチェックを入れればいいと思うのですが、どのライブラリファイルにチェックを入れればいいのかわかりません。
どなたか教えていただけないでしょうか?

現在チェックが入れてあるのは
Visual Basic For Applications
Microsoft Access 10.0 Object Library
OLE Automation
Microsoft Visual Basi...続きを読む

Aベストアンサー

#1です。


PharmitCompact型のクラスまたは構造体が、どこにあるかは
わかりませんが、どこかにコードがあるようですね。

QSELECT文で、指定カラム以外の全カラムを一括指定って可能でしょうか

SELECT文で、指定カラム以外の全カラムを一括指定って可能でしょうか?
MYSQLサーバのバージョンは5.0.77です。

下記のように「*」を使用して指定テーブルの全カラムを表示する方法がありますが、
SELECT TableName.* FROM TableName

上記の逆で、指定テーブルの指定カラム以外の全カラムを一括指定って可能でしょうか?
例えば下記のような「^」みたいな、又は同等な書き方があれば良いなと思ってまして。
SELECT TableName.^ColumnName1 FROM TableName

ちなみに、下記のように一つ一つ表示したいカラムを指定する方法以外です。
SELECT TableName.ColumnName2 , TableName.ColumnName3 FROM TableName

よろしくお願いします。

Aベストアンサー

ない。
SQL文でそんなことをするより、メソッドとして作ればいいんじゃないですか。
だいたい、それ以外のカラムの数がわからないし、並びも不明だし。

#1に方と同じで
SELECT * from xxxx
なんてのは正気の人間は書きません。
カラムの数も位置も属性もわからないSQL文の結果をどうやって扱うのか。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング