当使用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] 删除。
我来说两句