Bitwise functions now use 64 bit integers.
This commit is contained in:
@@ -33,6 +33,7 @@ DETAILED CHANGES:
|
|||||||
- ADDED: SwapBufferEndianness.
|
- ADDED: SwapBufferEndianness.
|
||||||
- ADDED: Reference lib.
|
- ADDED: Reference lib.
|
||||||
- ADDED: BUFFER_UNSIGNED_LONG and BUFFER_LONG.
|
- ADDED: BUFFER_UNSIGNED_LONG and BUFFER_LONG.
|
||||||
|
- FIXED: Bitwise functions now use 64 bit integers.
|
||||||
|
|
||||||
------------------------------------------------------------------------
|
------------------------------------------------------------------------
|
||||||
Release: ReiLua version 0.8.0 Using Raylib 5.0 and Forked Raygui 4.0
|
Release: ReiLua version 0.8.0 Using Raylib 5.0 and Forked Raygui 4.0
|
||||||
|
|||||||
@@ -171,7 +171,7 @@ function utillib.randomFloat( min, max )
|
|||||||
end
|
end
|
||||||
|
|
||||||
function utillib.printBin( v )
|
function utillib.printBin( v )
|
||||||
for i = 31, 0, -1 do
|
for i = 63, 0, -1 do
|
||||||
if RL.BitGet( v, i ) then
|
if RL.BitGet( v, i ) then
|
||||||
io.write( "1" )
|
io.write( "1" )
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -16,8 +16,8 @@ Equivalent to a & b in C
|
|||||||
- Success return int
|
- Success return int
|
||||||
*/
|
*/
|
||||||
int lbitAnd( lua_State* L ) {
|
int lbitAnd( lua_State* L ) {
|
||||||
int a = luaL_checkinteger( L, 1 );
|
uint64_t a = luaL_checkinteger( L, 1 );
|
||||||
int b = luaL_checkinteger( L, 2 );
|
uint64_t b = luaL_checkinteger( L, 2 );
|
||||||
|
|
||||||
lua_pushinteger( L, a & b );
|
lua_pushinteger( L, a & b );
|
||||||
|
|
||||||
@@ -32,8 +32,8 @@ Equivalent to a | b in C
|
|||||||
- Success return int
|
- Success return int
|
||||||
*/
|
*/
|
||||||
int lbitOr( lua_State* L ) {
|
int lbitOr( lua_State* L ) {
|
||||||
int a = luaL_checkinteger( L, 1 );
|
uint64_t a = luaL_checkinteger( L, 1 );
|
||||||
int b = luaL_checkinteger( L, 2 );
|
uint64_t b = luaL_checkinteger( L, 2 );
|
||||||
|
|
||||||
lua_pushinteger( L, a | b );
|
lua_pushinteger( L, a | b );
|
||||||
|
|
||||||
@@ -48,8 +48,8 @@ Equivalent to a ^ b in C
|
|||||||
- Success return int
|
- Success return int
|
||||||
*/
|
*/
|
||||||
int lbitXor( lua_State* L ) {
|
int lbitXor( lua_State* L ) {
|
||||||
int a = luaL_checkinteger( L, 1 );
|
uint64_t a = luaL_checkinteger( L, 1 );
|
||||||
int b = luaL_checkinteger( L, 2 );
|
uint64_t b = luaL_checkinteger( L, 2 );
|
||||||
|
|
||||||
lua_pushinteger( L, a ^ b );
|
lua_pushinteger( L, a ^ b );
|
||||||
|
|
||||||
@@ -64,7 +64,7 @@ Equivalent to ~v in C
|
|||||||
- Success return int
|
- Success return int
|
||||||
*/
|
*/
|
||||||
int lbitNot( lua_State* L ) {
|
int lbitNot( lua_State* L ) {
|
||||||
int v = luaL_checkinteger( L, 1 );
|
uint64_t v = luaL_checkinteger( L, 1 );
|
||||||
|
|
||||||
lua_pushinteger( L, ~v );
|
lua_pushinteger( L, ~v );
|
||||||
|
|
||||||
@@ -79,8 +79,8 @@ Equivalent to v << n in C
|
|||||||
- Success return int
|
- Success return int
|
||||||
*/
|
*/
|
||||||
int lbitShiftLeft( lua_State* L ) {
|
int lbitShiftLeft( lua_State* L ) {
|
||||||
int v = luaL_checkinteger( L, 1 );
|
uint64_t v = luaL_checkinteger( L, 1 );
|
||||||
int n = luaL_checkinteger( L, 2 );
|
uint64_t n = luaL_checkinteger( L, 2 );
|
||||||
|
|
||||||
lua_pushinteger( L, v << n );
|
lua_pushinteger( L, v << n );
|
||||||
|
|
||||||
@@ -95,8 +95,8 @@ Equivalent to v >> n in C
|
|||||||
- Success return int
|
- Success return int
|
||||||
*/
|
*/
|
||||||
int lbitShiftRight( lua_State* L ) {
|
int lbitShiftRight( lua_State* L ) {
|
||||||
int v = luaL_checkinteger( L, 1 );
|
uint64_t v = luaL_checkinteger( L, 1 );
|
||||||
int n = luaL_checkinteger( L, 2 );
|
uint64_t n = luaL_checkinteger( L, 2 );
|
||||||
|
|
||||||
lua_pushinteger( L, v >> n );
|
lua_pushinteger( L, v >> n );
|
||||||
|
|
||||||
@@ -111,11 +111,11 @@ Set bit in index i to state b in value v
|
|||||||
- Success return int
|
- Success return int
|
||||||
*/
|
*/
|
||||||
int lbitSet( lua_State* L ) {
|
int lbitSet( lua_State* L ) {
|
||||||
int v = luaL_checkinteger( L, 1 );
|
uint64_t v = luaL_checkinteger( L, 1 );
|
||||||
int i = luaL_checkinteger( L, 2 );
|
uint64_t i = luaL_checkinteger( L, 2 );
|
||||||
bool b = uluaGetBoolean( L, 3 );
|
bool b = uluaGetBoolean( L, 3 );
|
||||||
|
|
||||||
lua_pushinteger( L, b ? v | 1 << i : v & ~( 1 << i ) );
|
lua_pushinteger( L, b ? v | 1UL << i : v & ~( 1UL << i ) );
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@@ -128,10 +128,10 @@ Get bit in index i from value v
|
|||||||
- Success return bool
|
- Success return bool
|
||||||
*/
|
*/
|
||||||
int lbitGet( lua_State* L ) {
|
int lbitGet( lua_State* L ) {
|
||||||
int v = luaL_checkinteger( L, 1 );
|
uint64_t v = luaL_checkinteger( L, 1 );
|
||||||
int i = luaL_checkinteger( L, 2 );
|
uint64_t i = luaL_checkinteger( L, 2 );
|
||||||
|
|
||||||
lua_pushboolean( L, 0 < ( v & ( 1 << i ) ) );
|
lua_pushboolean( L, 0UL < ( v & ( 1UL << i ) ) );
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@@ -144,10 +144,10 @@ Toggle bit in index i in value v
|
|||||||
- Success return int
|
- Success return int
|
||||||
*/
|
*/
|
||||||
int lbitToggle( lua_State* L ) {
|
int lbitToggle( lua_State* L ) {
|
||||||
int v = luaL_checkinteger( L, 1 );
|
uint64_t v = luaL_checkinteger( L, 1 );
|
||||||
int i = luaL_checkinteger( L, 2 );
|
uint64_t i = luaL_checkinteger( L, 2 );
|
||||||
|
|
||||||
lua_pushinteger( L, v ^ 1 << i );
|
lua_pushinteger( L, v ^ 1UL << i );
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user