Hello there,
I'm just discovering Nimrod and have a basic question (couldn't find the answer in the documentation).
How do you use bitwise operations ? I have the following code, where x is defined as an int :
if x and 1:
This does not compile :
Error: type mismatch: got (range 0..1(int)) but expected 'bool'
And if I try:
if and(x, 1)
I get
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
What's the trick ?
Thank you, Sacado
In Nimrod if statements do not accept integers (unlike C).
What you probably want is:
if (x and 1) != 0: ...
Yep, thank you dom96, that worked.
Actually, leledumbo, you're right, I'm trying to port C++ code to nimrod, hence the non-boolean test :)