• 友链

  • 首页

  • 文章归档
h u a n b l o g
h u a n b l o g

欢

HI,Friend

04月
20
Lua

Lua位和字节

发表于 2022-04-20 • 字数统计 800 • 被 2,312 人看爆

位运算

位运算符包括&(按位与)、|(按位或)~(按位异或)、>>(逻辑右移)、<<(逻辑左移)和一元运算符~(按位取反)。
请注意,在其他一些语言中,异或运算符为^,而在 Lua语言中^代表幂运算。
string.format( "%x", 0xff & 0xabcd)         --> cd
string.format( "%x", 0xff | 0xabcd)         --> abff
string.format( "%x", 0xaaaa ~ -1)           --> ffffffffffff5555
string.format("%x", ~0)                     --> ffffffffffffffff

移位数是负数表示向相反的方向移位,即a>>n与a<<-n等价:


string.format("%x", 0xff << 12)              --> ff000
string.format("%x", 0xff >> -12)             --> ff000

如果移位数等于或大于整型表示的位数,由于所有的位都被从结果中移出了,所以结果是0:

string.format("%x", -1 << 80)                 -->0

无符号整型

Lua语言不显式支持无符号整型数
可用%u或&x在函数string.format中指定以无符号整型数进行输出
x = 13835058055282163712            -- 3<<62
x                                   --> -4611686018427387904
string.format("%u", x)              --> 13835058055282163712
string.format("0x%X", x)            --> 0xc800008000000800

打包和解包二进制数据

函数string.pack会把值“打包”为二进制字符串,而函数string.unpack则从字符串中提取这些值。

todo

分享到:
Lua编译和执行错误
Lua中日期和时间
  • 文章目录
  • 站点概览
欢

网红 欢

你能抓到我么?

Email RSS
看爆 Top5
  • mac系统版本与Xcode版本有冲突 4,080次看爆
  • JAVA_HOME环境配置问题 3,730次看爆
  • AssetBundle使用 3,499次看爆
  • VSCode配置C++开发环境 3,257次看爆
  • Lua反射 3,133次看爆

Copyright © 2025 欢 粤ICP备2020105803号-1

由 Halo 强力驱动 · Theme by Sagiri · 站点地图