由于 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. vgg_face人脸识别

    最近参考http://blog.csdn.net/hlx371240/article/details/51388022一文,用LFW数据集对vgg_face.caffemodel进行fine-tune ...

  2. Kernel space是啥?

    今天因为查一个Java zero copy的问题,遇到了kernel space.之前是耳闻过内核空间的,但是看到kernel space不知道是啥.知道的太少,除了学习,我也做不了啥.因为自己认知有 ...

  3. Linux /python --- zipinfo命令

    Linux zipinfo命令用于列出压缩文件信息. 执行zipinfo指令可得知zip压缩文件的详细信息. zipinfo [-12hlmMstTvz][压缩文件][文件...][-x <范本 ...

  4. SQL学习笔记二之MySQL的数据库操作

    阅读目录 一 系统数据库 二 创建数据库 三 数据库相关操作 一 系统数据库 information_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息.列信息.权限 ...

  5. pyimage search研究

    包括<软实力>的作者,类似 http://www.learnopencv.com/, 这次调查研究的 http://www.pyimagesearch.com 是一个独立的博客,作者是机器 ...

  6. [SpringBoot] - 了解什么是SpringBoot,使用SpringBoot的配置文件

    首先明白Spring是什么,Spring是Java开发的一个框架,为了方便简化Java开发. 什么是注解(注解式开发)? Spring的常用注解有哪些? 假如用SpringBoot构建一个网站程序,应 ...

  7. window下安装redis报错: creating server tcp listening socket 127.0.0.1:6379: bind No error

    window下安装redis报错: creating server tcp listening socket 127.0.0.1:6379: bind No error 解决: 如果没有配置环境,在安 ...

  8. install flask

    pip install flask -i http://pypi.douban.com/simple

  9. ng-disabled 指令

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script sr ...

  10. Java Spring-IOC和DI

    2017-11-06 16:30:25 IOC:控制反转,将对象的创建权交由Spring管理.IOC底层原理:工厂类+反射+配置文件,创建对象交由工厂类完成. DI(Dependency Inject ...