VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 2003/04/23(Wed) 14:24
投稿者nanashi
Eメール
URL
タイトルRe: ビット演算Andについて

> Const A = &H00008000
> Const B = &H00010000
> Const C = &H00020000
> Const D = &H00040000

↑ここを↓のように記述してください。

Const A As Long = &H00008000&
Const B As Long = &H00010000&
Const C As Long = &H00020000&
Const D As Long = &H00040000&

理由は特に定数Aについてですが、明示的にLong型にしていないとInteger型だとみなされます。
Long型の場合&H000080000は 32768ですが、Integer型だと -32768になります。
このためA+Bが -32768 + 65536、つまり32768となり定数Aと異なるため処理が正常に行われません。

もう一つ、ビット演算を行っているのですから
> Call fLib(A+B,"処理")
という記述は好ましくありません。

Call fLib(A or B,"処理")
とした方が適していると思います。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -