引用:
> Dim temp As Byte
> temp=&H60
> とした場合、変数tempの中身は
> 01000000
> となっているはず。
> ここで、tempの先頭から2byteのメモリの内容を知りたいのですが
> どうしたらよいのでしょう?
多分、仰りたいのは
先頭から2bit目だと思いますが、
どうでしょうか?
あと&H60は二進数では01100000だと思います。
引用:
> 私は、変数のポインタは変数の先頭アドレスを示しているはずだから
> tempのポインタを-6シフトさせてGetByteでポインタからデータ
> を取り出すと
> 00000001
> になっているはずだとおもって、
> Print GetByte(VarPtr(temp)-6) And &H1
> こんな事してみたのですが、表示は0
確かにポインタは変数の先頭アドレスを示していますが、
変数内の何bit目に0か1が立っているかを調べることには使いません。
何ビット目が0に成っているか1に成っているかを調べるには
ビットマスクか
ビットシフトを使います。
例えば、問題のように2bit目が0なのか1なのかを調べるには
コード:
Dim temp As Byte
temp=&H60
Print (temp<<2)>>8
のようにしたり
コード:
Dim temp As Byte
temp=&H60
Print (temp and &H40)>>6
というようにします。