매우 기본적인 로직 질문인데 죄송하지만 예제에서 일부 코드를 보았습니다. 로직 구조를 이해하지 못하기 때문에 누군가가 나에게 설명 할 수 있기를 바랬다. 내 예에서이 논리가 무엇입니까? [long] = ([long] and [long]) 또는 [Long]
은 단순히 어떤 긴 데이터 형식 개체
에 대한 표현으로
[Long]
을 사용하고
의 예는 다음과 같습니다
참고 : WHI, wLow, 롤로, 힐로, LoHI하고, HiHI는 모두 긴 변수입니다. [LONG] = ([LONG] And [LONG]) or [LONG]
내가 재생 시도 : 예를 들면, 나는 또한 반환 논리를 이해하지 못하는 if [long] and [long] then
및 if [long] or [long] then
을 :
If (wHi And &H8000&) Then
MAKELONG = (((wHi And &H7FFF&) * 65536) Or (wLow And &HFFFF&)) Or &H80000000
Else
MAKELONG = LoLO Or (&H10000 * LoHI)
'MAKELONG = ((wHi * 65535) + wLow)
End If
는 여기 테스트되고 어떤 조건 확실하지 않다 즉각적인 창과 그것이 명백한 패턴을 보지 못했기 때문에 나에게 어떤 빛도 비춰주지 않았다.
?1 or 10
11
?2 or 10
10
?3 or 10
11
?4 or 10
14
? 1 and 10
0
?2 and 10
2
?3 and 10
2
?4 and 10
0
?5 and 10
0
그것의 비트 마스크 : http://stackoverflow.com/questions/4046457/how-can-i-do-a-bitwise-and-operation-in-vb-net –
http://en.wikipedia.org/wiki/Boolean_algebra – Steve
'Option Strict On'을 켜면 오류가 발생하는 것을 볼 수 있습니다. Boolean을 예상하는 If 문에서 Long 값을 사용하는 것은 의미가 없습니다. –