bitArShift | Multi Theft Auto: Wiki Skip to content

bitArShift

Client-side
Server-side
Shared

This page is incomplete! Help wanted!

Please finish this page using the corresponding Old Wiki article.
Go to Contribution guidelines for more information.


This functions performs an arithmetic shift on the integer value by integer n positions. In an arithmetic shift, zeros are shifted in to replace the discarded bits. In a right arithmetic shift, the sign bit is shifted in on the left, thus preserving the sign of the operand. See Bitwise operation for more details.

Syntax

bitArShift ( )

Code Examples

server

This example adds the clientside command/arshift [value] [positions = 1], which will print the result from the functionbitArShift.

function getNumberAsBitString(value)
if type(value) ~= 'number' then
return false
else
local binary = ''
for field = 31, 0, -1 do
binary = binary .. bitExtract(value, field)
if field % 4 == 0 then
binary = binary ..' '
end
end
return binary
end
end
addCommandHandler('arshift',
function (command, value, positions)
if type(value) ~= 'string' or value:len() == 0 then
return outputChatBox('* Syntax: /arshift [value] [positions = 1]')
end
if type(positions) ~= 'string' or positions:len() == 0 then
positions = 1
end
local result = bitArShift(tonumber(value), tonumber(positions))
local binary = getNumberAsBitString(result)
outputChatBox('* Decimal: '.. result ..', Binary: '.. binary)
end
)