python - Lua和Python在十六进制转换方面的区别

标签 python lua hex

在Python中,我有:

>>> mac_string = "68:a8:6d:0b:90:46"
>>> mac_int = int((mac_string).replace(":", ""), 16)
>>> print(mac_int)
115072593268806

在 Lua 中,我有:

> mac_string = "68:a8:6d:0b:90:46"
> mac_int = tonumber(mac_string:gsub(':',''),16)
> print(mac_int)
1.1507259326881e+14

为什么相差4?

最佳答案

Lua 5.1默认情况下总是将数字存储为64位浮点值。 tostring 使用科学记数法来打印非常大或小的值。

如果使用string.format格式化数字,可以得到所有数字:

> print(string.format("%15d", mac_int))
115072593268806

关于python - Lua和Python在十六进制转换方面的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34093066/

相关文章:

java - 问题将 Base64 字符串转换为十六进制字符串

python - 如何默认隐藏wxpython状态栏

php - DES 加密字符串并转换为十六进制

python - 计算到凸包的距离

arrays - 无法使用另一个表中的数字声明表元素

c++ - lua返回字符串c++

lua - 有没有办法确定从调用处理 'call' 事件的调试 Hook 中传递给 Lua 函数的参数值?

java - 为什么我们有时使用十六进制格式而不是十进制?

java - Java和Python计算特征向量的区别

python - 在 python 中使用装饰器将 f(x) 转换为 f([x])