【问题标题】:Parse integer in base 10 to base 16 in Squirrel将基数为 10 的整数解析为 Squirrel 中的基数 16
【发布时间】:2014-09-18 10:51:04
【问题描述】:

我应该如何在 Squirrel 中进行基数 10 到基数 16 的整数转换?在 Javascript 中,我可以使用:parseInt("ff", 16)

我正在尝试将十六进制颜色代码转换为 Electric Imp 的 RGB 计算器。 #ffaacc 将被分成 3 个部分(ffaacc)。然后我会计算这些以 10 个整数为基数并实现 RGB(255, 170, 204)。然后我将使用这些数字来控制带 PWM 的 RGB LED。

【问题讨论】:

  • 看起来如果 Squirrel 没有 strtol,你将不得不编写一些代码。

标签: squirrel


【解决方案1】:

试试 String tointeger() 函数。

local s = "ff";
print (s.tointeger(16));

如果你想反过来转换,试试 format() 函数。

local i = 255;
print (format("%x", i));

【讨论】:

    【解决方案2】:

    这是使用array.find(和format 用于反转)的一种方法:

    local lookup = ['0','1','2','3','4','5','6','7','8','9',
                    'a','b','c','d','e','f']
    local hex = "7f"
    local dec = lookup.find(hex[0]) * 0x10 + lookup.find(hex[1])
    server.log(format("%s -> %d -> %02x", hex, dec, dec))
    

    【讨论】:

      猜你喜欢
      • 2010-10-25
      • 2017-09-11
      • 1970-01-01
      • 2019-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-13
      • 1970-01-01
      相关资源
      最近更新 更多