lua二进制操作函数

摘要:
Lua脚本语言本身不支持对数字的二进制操作(例如,bit.ashr-带符号逐位右移。此函数需要两个整数作为参数。第二个参数是无符号整数,以及11bit.mod-模函数(用于获得整数除法后的余数)。此函数要求两个整数为参数。此函数的操作需要一个无符号整数作为参数,第二个参数是向左移动的位数。256bit.shr-按位右移此函数需要两个无符号整数作为参数。

  由于 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二进制操作函数》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇利用m3u8下载ts并合并成一个完整视频 下载 blob视频触摸屏手指滑动方向检测下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

HBase shell 简单使用

引言HBase提供了丰富的访问接口。  • HBase Shell  • Java clietn API  • Jython、Groovy DSL、Scala  • REST  • Thrift(Ruby、Python、Perl、C++…)  • MapReduce  • Hive/Pig其中HBase Shell是常用的便捷方式 首先你需要一个HBase...

Vue中开启关闭风场

<template> <div class="box"> <div ref="emap" id="map"></div> <div id="popup" class="ol-popup"> <a href="#" id="popup-closer" class...

怎么彻底关闭flash助手弹窗?

日常使用中,flash助手弹窗不胜其扰,天天推荐游戏,早看它不顺眼了,那么怎么彻底关闭flash助手弹窗呢?我认真分析了下,做了个教程 1.打开任务管理器,并打开服务  右键->属性->禁用->应用 经过这些操作,就可以彻底禁掉flash助手频繁弹窗,打扰正常工作了. 喜欢的点个赞或者评论下,搞定收工!...

JS--微信浏览器复制到剪贴板实现

由于太忙很久没写博客了,如有错误遗漏,请指出,感谢! 首先这里要注意,是微信浏览器下的解决方案,其他浏览器请自行测试。 先说复制到剪贴板主要有什么使用场景: 优惠券优惠码,需要用户复制 淘宝商品,需要复制淘口令 由于淘宝链接无法在微信中打开,所以淘宝开发了淘口令方便物质传播,而导购网站在微信推广的时候也是生成口令,用户只需要复制口令,打开手机淘宝,即可...

Docker 安装 Python

Docker 安装 Python 方法一、docker pull python:3.5 查找 Docker Hub 上的 python 镜像: docker search python 这里我们拉取官方的镜像,标签为3.5 : docker pull python:3.5 等待下载完成后,我们就可以在本地镜像列表里查到 REPOSITORY 为 py...

python之数据类型详解

         python之数据类型详解 二.列表list  (可以存储多个值)(列表内数字不需要加引号) sort 1 s1=['a','b','zz','1','!'] 2 # s1.sort() 3 # print(s1) -->['!', '1', 'a', 'b', 'zz'] 列表排序,特殊字符不准,数字第一,字母第二,汉字第三 c...