Bitwise operations: Difference between revisions

Content deleted Content added
Added Nemerle
No edit summary
Line 686: Line 686:
}</lang>
}</lang>


=={{header|Liberty BASIC}}==
Written as functions.
<lang lb>
' bitwise operations on byte-sized variables

v =int( 256 *rnd( 1))

s = 1

print "Shift ="; s; " place."
print
print "Number as dec. = "; v; " & as 8-bits byte = ", dec2Bin$( v)
print "NOT as dec. = "; bitInvert( v), dec2Bin$( bitInvert( v))
print "Shifted left as dec. = "; shiftLeft( v, s), dec2Bin$( shiftLeft( v, s))
print "Shifted right as dec. = "; shiftRight( v, s), dec2Bin$( shiftRight( v, s))
print "Rotated left as dec. = "; rotateLeft( v, s), dec2Bin$( rotateLeft( v, s))
print "Rotated right as dec. = "; rotateRight( v, s), dec2Bin$( rotateRight( v, s))

end

function shiftLeft( b, n)
shiftLeft =( b *2^n) and 255
end function

function shiftRight( b, n)
shiftRight =int(b /2^n)
end function

function rotateLeft( b, n)
rotateLeft = (( 2^n *b) mod 256) or ( b >127)
end function

function rotateRight( b, n)
rotateRight = (128*( b and 1)) or int( b /2)
end function

function bitInvert( b)
bitInvert =b xor 255
end function

function dec2Bin$( num) ' Given an integer decimal 0 <--> 255, returns binary equivalent as a string
n =num
dec2Bin$ =""
while ( num >0)
dec2Bin$ =str$( num mod 2) +dec2Bin$
num =int( num /2)
wend
dec2Bin$ =right$( "00000000" +dec2Bin$, 8)
end function
</lang>
=={{header|LLVM}}==
=={{header|LLVM}}==
<lang llvm>; ModuleID = 'test.o'
<lang llvm>; ModuleID = 'test.o'