CFML InputBaseN不返回期望值

肖恩

当使用Adobe ColdFusion并尝试将十六进制字符串转换为十进制时,我们似乎没有得到我们想要/期望的结果。

<cfset i = #InputBaseN("A1000050", 16)# >
<cfdump var="#i#">

它正在输出-1593835440我们期待2701131856

在Windows计算器中,当我们将A1000050转换为dec qword时,它将提供我们预期的结果。但是,如果使用dword,它将为我们提供保存值ColdFusion给我们。

在ColdFusion中,我们在做什么错?我们如何获得期望值?

期望值的二进制文件(根据Windows Calc编程器模式)

0000 0000 0000 0000 0000 0000 0000 0000
1010 0001 0000 0000 0000 0000 0101 0000

= 2701131856

我们实际上得到的二进制值

1010 0001 0000 0000 0000 0000 0101 0000

= -1593835440

肖恩

我的猜测是您使用的是CF10还是11?这似乎是CF2016中修复的版本中的错误,但会在10/11中破坏向后兼容性。

https://tracker.adobe.com/#/view/CF-3712098

https://tracker.adobe.com/#/view/CF-4175842

这些错误日志确实包含可能对您有用的解决方法。

我能够验证该行为。

-1593835440

CF10:https://trycf.com/gist/ab0e93b1d690401778a57b443ff42a3e/acf theme = monokai

CF11:https://trycf.com/gist/45db48930b2cfbeec600d6d840521470/acf11 theme = monokai

Railo 4.2:https://trycf.com/gist/dee04bec7b7983bfd97dac69ea3bc930/railo theme = monokai

露西4.5:https://trycf.com/gist/31497d2b3a35ed69e9c95081ea5bd83d/lucee theme = monokai

2701131856

CF2016:https://trycf.com/gist/73b81b7184f47275503ab57d5ee5eeaa/acf2016 theme = monokai

露西5:https://trycf.com/gist/f73bd8fbe652f5c5675c658d5cd356f3/lucee5 theme = monokai

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章