JavaScript 与 ASP(VBScript)将负数转换成十六进制的不同点

作者:vkvi 来源:千一网络(原创) 日期:2009-4-27

  • JavaScript 用 toString(16) 将十进制转换成十六进制。
  • ASP(VBScript)用 Hex 将十进制转换成十六进制。

二者在正数表现上无实质区别,只是一个是小写,一个是大写;但对待负数就有区别了。

JavaScript 结果是在负数绝对值的十六进制前加负号。

var n = -10;
alert(n.toString(16)); // 结果为 -a,注意是小写。

ASP(VBScript)将补码看作是无符号的十六进制。

alert(hex(-10)) ' 结果为 FFF6,注意是大写。

10 的字节是 0000 0000 0000 1010,负数用补码表示,那么它的补码是:

  1. 符号位为 1:1000 0000 0000 1010
  2. 其他位为该数绝对值原码按位取反:1111 1111 1111 0101
  3. 加 1:1111 1111 1111 0110

而 1111 1111 1111 0110 对应于十六进制就是 FFF6。

如何让 JavaScript 的表现和 ASP(VBScript)相同呢?

var m = -10 + 65535 + 1;
alert(m.toString(16)); // 结果为 fff6,注意是小写。

你前面那位网友看了:2008 系列购买指南-SQL Server 2008 的 CPU 和用户数许可模式

▲▲▲嘿,欢迎转载传播本站原创文章,尽量保留来源噢。▲▲▲

文章评论
  • 1 楼:评论
    是在感谢 找了一晚才遇见你
  • 2 楼:谢谢
    很有用,谢谢作者!
标题:必填
内容:
本站永远终止与捏造“罪名”不支付广告费的某度联盟合作。
vkvi
vkvi

作者简介: vkvi,致力于 .NET Web 开发、移动开发的技术推广,在 .NET、SQL Server、Windows Server 等方面有深入研究和丰富经验,10 年间共计撰写文章 4000 余篇。 主持金融、国土、农业、电商等多个行业项目执行, 推行“技术提升生产力、人心决定成功率”的管理理论。 联系他