lua 二进制函数使用
由于 Lua 脚本语言本身不支持对数字的二进制操作(例如 与,或,非 等操作),MUSHclient 为此提供了一套专门用于二进制操作的函数,它们都定义在一个“bit”表中,使用时只要requre “bit”即可。
bit.ashr - 带符号的按位右移
此函数需要两个整数作为参数。第一个参数可以带有符号,是被以为的数,第二个参数是一个无符号整数,是向右移动的位数。在以为过程中,第一个参数的符合始终会被保留。
例如:
print (bit.ashr (-1024, 6)) --> -16
bit.band - 按位“与”运算
此函数需要一个或多个无符号整数作为参数,返回所有参数执行按位“与”运算后的结果。
bit.band(a,b)即是a 和 b的按位与;
例如:
print (bit.band (18, 2)) --> 2
print (bit.band (15, 7, 3)) --> 3
print (bit.band (17, 10, 4)) --> 0
bit.band(a,b,c)是a b c的互相按位与;
bit.bor - 按位“或”运算
此函数需要一个或多个无符号整数作为参数,返回所有参数执行按位“或”运算后的结果。
例如:
print (bit.bor (1, 2, 8)) --> 11
bit.mod - 取模函数 (得到整除后的余数)
此函数需要两个整数作为参数。函数结果是两个数整除之后的余数。
例如:
print(bit.mod (17, 4)) --> 1
bit.neg - 按位“非”运算
此函数需要一个无符号整数作为参数,返回这个参数执行按位“非”运算后的结果。
例如:
print (bit.neg (1)) --> 4294967294
bit.shl - 按位左移
此函数需要两个无符号整数作为参数。第一个参数是被移位的数,第二个参数是向左移动的位数。
例如:
print (bit.shl (4, 6)) --> 256
bit.shr - 按位右移
此函数需要两个无符号整数作为参数。第一个参数是被移位的数,第二个参数是向右移动的位数。
例如:
print (bit.shr (1024, 6)) --> 16
bit.tostring (n, base) - 把一个数字转换为字符串
把一个数字根据指定的基数转换为字符串(大写形式)base 产生是可选的,默认为 10,其有效范围为 2 - 36。数字的小数部分会被忽略. 被转换的数字可以是负数,转换后会保留 "-" 符号。
例如:
print (bit.tostring (45035996273, 16)) --> A7C5AC471
bit.tonumber (s, base) - 把字符串转换为一个数字
把一个字符串形式的数字转换为相应的数字。和标准 Lua tonumber 函数不一样的是此函数可以处理高达 52 bit 的数字(Lua 默认的函数只能处理 32 bit 的数字)。
例如:
print (bit.tonumber ("A7C5AC471", 16)) --> 45035996273
base 参数是可选的,指明了转换的基数,默认为 10。base 的有效范围是 2 - 36。此函数不支持小数,也不支持指数表示形式的整数(例如 10.24e15)。如果一定要使用这样的数,你只有使用 Lua 自带的 tonumber 函数了。
由于计算机对浮点数的限制,字符串能转换的数字不能超过 52 bit,例如:十六进制 FFFFFFFFFFFFF (十进制 4503599627370495)。
字符串开始的空白字符会自动被忽略,实际数字前面可以有一个 + 或者 - 号。
bit.xor - 按位“异或”运算
此函数需要一个或多个无符号整数作为参数,返回所有参数执行按位“异或”运算后的结果。
例如:
print (bit.xor (15, 1)) --> 14
lua 二进制函数使用的更多相关文章
- lua二进制操作函数
由于 Lua 脚本语言本身不支持对数字的二进制操作(例如 与,或,非 等操作),MUSHclient 为此提供了一套专门用于二进制操作的函数,它们都定义在一个“bit”表中,使用时只要requre “ ...
- lua API函数大全
Lua5.1中的API函数 lua_State* luaL_newstate()Lua脚本的编译执行是相互独立的,在不同的线程上执行.通过luaL_newstate()函数可以申请一个虚拟机,返回指针 ...
- Lua 常用函数 一
lua_getallocf lua_Alloc lua_getallocf (lua_State *L, void **ud); 返回给定状态机的内存分配器函数.如果 ud 不是 NULL ,Lua ...
- lua闭合函数
function count( ... ) return function( ... ) i = i+ return i end end local func = count(...) print(f ...
- Lua基础 函数(一)
转自: http://blog.csdn.net/wzzfeitian/article/details/8653101 在Lua中,函数是对语句和表达式进行抽象的主要方法.既可以用来处理一些特殊的工作 ...
- Lua function 函数
Lua支持面向对象,操作符为冒号‘:’.o:foo(x) <==> o.foo(o, x). Lua程序可以调用C语言或者Lua实现的函数.Lua基础库中的所有函数都是用C实现的.但这些细 ...
- lua c函数注册器
lua与c的交互 关于lua和c的交互,主要有两个方面,一是lua调用c的函数,而另一个则是c调用lua函数.而这些都是通过lua stack来进行的. c调用lua 在c里面使用lua,主要是通过l ...
- lua基础---函数
Lua的函数功能很强大,保留了C语言的一些基本的特性,但是也有C语言没有的特性,比如,lua可以在一个函数返回多个值,我们来看看下面这个案例: 解释运行: lua test5.lua --定义一个函数 ...
- 【lua实战摸索】在b.lua调用a.lua的函数
需要掌握知识: lua table的使用(创建自己函数的表作为函数库) 普通函数的调用:tab.func(tab,参数) 等效于表中函数的调用tab:func(参数) 基本思路: 1.在相同目录下创建 ...
随机推荐
- Python:数字的格式化输出
>>> 'The value is {:0,.2f}'.format(x) 'The value is 1,234.57' 需要将数字格式化后输出,并控制数字的位数.对齐.千位分隔符 ...
- 在Qt中如何编写插件,加载插件和卸载插件(转)
Qt提供了一个类QPluginLoader来加载静态库和动态库,在Qt中,Qt把动态库和静态库都看成是一个插件,使用QPluginLoader来加载和卸载这些库.由于在开发项目的过程中,要开发一套插件 ...
- SQL学习笔记八之ORM框架SQLAlchemy
阅读目录 一 介绍 二 创建表 三 增删改查 四 其他查询相关 五 正查.反查 一 介绍 SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进 ...
- bzoj1622 / P2908 [USACO08OPEN]文字的力量Word Power
P2908 [USACO08OPEN]文字的力量Word Power 第一眼:AC自动机(大雾) 直接暴力枚举即可. 用<cctype>的函数较方便(还挺快) $isalpha(a)$:$ ...
- js 打印软件 Lodop
官网首页:http://www.c-lodop.com/index.html 下载页面里有使用手册可下载.
- PhpStorm提高效率的使用方法及设置(快捷键)
原文链接:https://my.oschina.net/chunto/blog/262954 快捷键: CTRL + D 复制当前行到下一行 或 复制选中内容到选中内容之后 CTRL + Y 删除 ...
- 20145312 《网络对抗》PC平台逆向破解:注入shellcode和 Return-to-libc 攻击实验
20145312 <网络对抗>PC平台逆向破解:注入shellcode和 Return-to-libc 攻击实验 注入shellcode 实验步骤 1. 准备一段Shellcode 2. ...
- hdu 6299 Balanced Sequence(贪心)题解
题意:题意一开始不是很明白...就是他给你n个串,让你重新排列组合这n个串(每个串内部顺序不变),使得匹配的括号长度最大.注意,题目要求not necessary continuous,括号匹配不需要 ...
- POJ 2886 Who Gets the Most Candies? (线段树)题解
题意:一堆小朋友围成一个圈,规定从k开始玩,每个被选中的人都有一个数字,正数代表从他左边开始数num,负数从右边数,被选中的人继续按照上述操作,直到都退出圈子,第i个退圈的人能拿到一个点数,这个点数是 ...
- JS判定注册表单的几个方式 及 Ajax进行用户名存在判定
最近感觉不赶紧把代码逻辑记一下梳理一下,再做的时候就容易进入"逻辑误区". 有个表单,简单点. <!DOCTYPE html> <!-- 注册表单验证,用户名格式 ...