2013-11-01 6 views
6

나는 Nimrod를 발견하고 기본적인 질문을하고있다 (문서에서 답을 찾을 수 없음).Nimrod에서 비트 연산 구문은 무엇입니까?

어떻게 비트 연산을 사용합니까?

Error: type mismatch: got (range 0..1(int)) but expected 'bool' 

를 내가 시도하는 경우 :이 컴파일되지 않습니다

if x and 1: 

:

if and(x, 1) 

을 내가

를 얻을 나는 X는 int로 정의 된 다음 코드를 가지고
Error: type mismatch: got (tuple[int, int]) 
but expected one of: 
system.and(x: int16, y: int16): int16 
system.and(x: int64, y: int64): int64 
system.and(x: int32, y: int32): int32 
system.and(x: int, y: int): int 
system.and(x: bool, y: bool): bool 
system.and(x: int8, y: int8): int8 

트릭이란 무엇인가요?

답변

7

and 비트 단위로; 문제는 if이 정수가 아닌 bool을 필요로한다는 것입니다. C와 같은 비교를 0으로하려면 간단히 추가하십시오.

>>> if 1: 
... echo("hello") 
... 
stdin(10, 4) Error: type mismatch: got (int literal(1)) but expected 'bool' 
>>> if 1!=0: 
... echo("hello") 
... 
hello 
+0

아니요, 실제로 변수를 수행해야합니다. 더 정확하게 말하자면, 마지막 비트가 설정되어 있는지 확인하고 싶습니다. – Fabien

+1

그래서'(x and 1)! = 0'을 사용 하시겠습니까? –

+0

그래, 그 덕분에, 고마워. – Fabien