📄 lua_misc.c
字号:
#include <lua.h>
#include <lauxlib.h>
#include <lualib.h>
//#include <lstate.h>
#include "lua_misc.h"
//-----------------------------------------------------------------------------------------------
static int l_bit_and (lua_State *L)
{
int a,b,result;
a=(int) lua_tonumber(L,1);
b=(int) lua_tonumber(L,2);
result= a&b;
lua_pushnumber(L, result);
return 1; /* number of results */
}
//-----------------------------------------------------------------------------------------------
static int l_bit_or (lua_State *L)
{
int a,b,result;
a=(int) lua_tonumber(L,1);
b=(int) lua_tonumber(L,2);
result= a|b;
lua_pushnumber(L, result);
return 1; /* number of results */
}
//-----------------------------------------------------------------------------------------------
static int l_bit_xor (lua_State *L)
{
int a,b,result;
a=(int) lua_tonumber(L,1);
b=(int) lua_tonumber(L,2);
result= a^b;
lua_pushnumber(L, result);
return 1; /* number of results */
}
//-----------------------------------------------------------------------------------------------
static int l_getbyte(lua_State *L)
{
int a,b,result;
a=(int) lua_tonumber(L,1);
b=(int) lua_tonumber(L,2);
switch(b)
{
case 1: result = a & 0xFF; break;
case 2: result = (a>>8) & 0xFF; break;
case 3: result = (a>>16) & 0xFF; break;
case 4: result = (a>>24) & 0xFF; break;
default: result = a & 0xFF; break;
}
lua_pushnumber(L, result);
return 1; /* number of results */
}
//-----------------------------------------------------------------------------------------------
static int l_getword(lua_State *L)
{
int a,b,result;
a=(int) lua_tonumber(L,1);
b=(int) lua_tonumber(L,2);
switch(b)
{
case 1: result = a & 0xFFFF; break;
case 2: result = (a>>16) & 0xFFFF; break;
default: result = a & 0xFFFF; break;
}
lua_pushnumber(L, result);
return 1; /* number of results */
}
//-----------------------------------------------------------------------------------------------
static const struct luaL_reg misc_lib [] = {
{"bit_and", l_bit_and},
{"bit_or", l_bit_or},
{"bit_xor", l_bit_xor},
{"getbyte", l_getbyte},
{"getword", l_getword},
{NULL, NULL} /* sentinel */
};
//-----------------------------------------------------------------------------------------------
int luaopen_misc (lua_State *L)
{
luaL_openlib(L, "misc", misc_lib, 0);
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -