由于 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 二进制函数使用的更多相关文章

  1. lua二进制操作函数

    由于 Lua 脚本语言本身不支持对数字的二进制操作(例如 与,或,非 等操作),MUSHclient 为此提供了一套专门用于二进制操作的函数,它们都定义在一个“bit”表中,使用时只要requre “ ...

  2. lua API函数大全

    Lua5.1中的API函数 lua_State* luaL_newstate()Lua脚本的编译执行是相互独立的,在不同的线程上执行.通过luaL_newstate()函数可以申请一个虚拟机,返回指针 ...

  3. Lua 常用函数 一

    lua_getallocf lua_Alloc lua_getallocf (lua_State *L, void **ud); 返回给定状态机的内存分配器函数.如果 ud 不是 NULL ,Lua ...

  4. lua闭合函数

    function count( ... ) return function( ... ) i = i+ return i end end local func = count(...) print(f ...

  5. Lua基础 函数(一)

    转自: http://blog.csdn.net/wzzfeitian/article/details/8653101 在Lua中,函数是对语句和表达式进行抽象的主要方法.既可以用来处理一些特殊的工作 ...

  6. Lua function 函数

    Lua支持面向对象,操作符为冒号‘:’.o:foo(x) <==> o.foo(o, x). Lua程序可以调用C语言或者Lua实现的函数.Lua基础库中的所有函数都是用C实现的.但这些细 ...

  7. lua c函数注册器

    lua与c的交互 关于lua和c的交互,主要有两个方面,一是lua调用c的函数,而另一个则是c调用lua函数.而这些都是通过lua stack来进行的. c调用lua 在c里面使用lua,主要是通过l ...

  8. lua基础---函数

    Lua的函数功能很强大,保留了C语言的一些基本的特性,但是也有C语言没有的特性,比如,lua可以在一个函数返回多个值,我们来看看下面这个案例: 解释运行: lua test5.lua --定义一个函数 ...

  9. 【lua实战摸索】在b.lua调用a.lua的函数

    需要掌握知识: lua table的使用(创建自己函数的表作为函数库) 普通函数的调用:tab.func(tab,参数) 等效于表中函数的调用tab:func(参数) 基本思路: 1.在相同目录下创建 ...

随机推荐

  1. SQL group by的使用

    ①定义 "group by" 从字面上理解是根据“by"指定的规则对数据进行分组 ②简单示例 ③group by 中的select字段是受限制的 select指定的字段要 ...

  2. 20145221 《Java程序设计》第七周学习总结

    20145221 <Java程序设计>第七周学习总结 教材学习内容总结 第十二章部分 - Lambda 认识Lambda语法 Lambda去可以重复,符合DRY原则,而且Lambda表达式 ...

  3. Linux硬盘扩容(非LVM)

    环境说明: 虚拟机:Centos6 [root@elements ~]# cat /etc/redhat-release CentOS release 6.10 (Final) [root@eleme ...

  4. 【分页问题】elasticsearch 深分页问题以及解决方法

    本文主要参考: 1.https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-scroll.html ...

  5. POJ 2699 The Maximum Number of Strong Kings (最大流+枚举)

    http://poj.org/problem?id=2699 题意: 一场联赛可以表示成一个完全图,点表示参赛选手,任意两点u, v之间有且仅有一条有向边(u, v)或( v, u),表示u打败v或v ...

  6. POJ Stockbroker Grapevine(floyd)

    https://vjudge.net/problem/POJ-1125 题意: 题意不是很好理解,首先输入一个n,表示有n个股票经纪人,接下来输入n行,每行第一个数m为该股票经纪人认识的经纪人数,然后 ...

  7. [翻译]将智能指针用于C++的类成员

    http://stackoverflow.com/questions/15648844/using-smart-pointers-for-class-members Question: I'm hav ...

  8. [原][译][osgearth]Model Source Drivers模型驱动源(OE官方文档翻译)

    ModelSource 是一个能生成OpenSceneGraph节点的驱动(driver) osgEarth使用ModelSources显示矢量特征(feature)数据和加载和显示外部3d模型 Fe ...

  9. 资源管理器总是生成 avi,mpeg的预览图

    感觉非常讨厌. 图片可以直接显示,但是视频的预览图感觉很不舒服. 查了一下 , 用ShellExView 禁用一下 MF XXXX Property Handler 就可以了. 官网最下面可以下载: ...

  10. baseCss/resetCss(转)

    原文链接:https://github.com/hangyangws/baseCss#basecss baseCss 意义 统一各个浏览器差异.统一团队开发起始标准.弥补浏览器的“缺点”.提供频繁使用 ...