Actionscript里的进制及编码转换

来源:互联网 发布:nodejs 商城源码 编辑:程序博客网 时间:2024/05/17 04:54

Actionscript里的进制及编码转换

转自:http://www.xiiid.com/blog/article.asp?id=166

进制和编码转换一直以来都是新手们头疼的问题, 加上对于AS的不熟悉, 经常会出现做一些小题大作的事情.

有时一提起进制转换(如:把16进制转成10进制), 新手一问, 很多大虾就大费周折, 自己动手写了 [x]2[x] 的 函数. 其实这是完全不必要的, 因为这么简单的小事情, 怎么可能会难倒我们伟大的Flash呢.

以下是木頭(Mutoo)我从帮助里收集整理出来的与进制和编码有关的函数, 希望对大家有点帮助.

将字符串转换为浮点数

trace(parseFloat("-2"));
// output: -2
trace(parseFloat("2.5"));
// output: 2.5
trace(parseFloat(" 2.5"));
// output: 2.5
trace(parseFloat("3.5e6"));
// output: 3500000
trace(parseFloat("foobar"));
// output: NaN
trace(parseFloat("3.75math"));
// output: 3.75
trace(parseFloat("0garbage"));
// output: 0

将字符串转换为整数

trace(parseInt("3.5"));
// output: 3
trace(parseInt("bar"));
// output: NaN
trace(parseInt("4"));
// output: 4foo
trace(parseInt("0x3F8"));
// output: 1016
trace(parseInt("3E8", 16));
// output: 1000
trace(parseInt("1010", 2));
// output: 10
trace(parseInt("0777"));
// output: 511
trace(parseInt("777", 8));
// output: 511

输出指定的 Number 对象 的字符串表示形式

trace(Number(7).toString());
// output: 7
trace(Number(9).toString(2));
// output: 1001
trace(Number(13).toString(8));
// output: 15
trace(Number(13).toString(10));
// output: 13
trace(Number(16).toString(16));
// output: 10

var r:Number = new Number(250);
var g:Number = new Number(128);
var b:Number = new Number(114);
var rgb:String = "0x"+r.toString(16)+g.toString(16)+b.toString(16);
trace(rgb);
// output: rgb:0xFA8072 (Hexadecimal equivalent of the color 'salmon')

输出的字符的 16 位整数字符代码

trace(String("a").charCodeAt(0));
// output: 97
trace(String("嗨").charCodeAt(0));
// output: 21992

输出由参数中的 Unicode 值表示的字符组成的字符串

trace(String.fromCharCode(20320,22909,21568));
// output: 你好呀
trace(String.fromCharCode(29233));
// output: 爱

将参数转换为字符串,并以 URL 编码格式对其进行编码

var email:String = "someuser@somedomain.com";
trace(escape(email));
// output: someuser%40somedomain%2Ecom

将该字符串从 URL 编码格式解码

trace(unescape("someuser%40somedomain%2Ecom"));
// output: someuser@somedomain.com

--------------------

10进制转16进制: "0x"+Number("10").toString(16)

16进制转10进制: parseInt("0x3F8") 或 parseInt("3E8", 16)

其它转法大同小异

10进制转8进制: "0"+Number("10").toString(8)

8进制转10进制: parseInt("0777") 或 parseInt("777", 8)

另外附上一个用 String.chatCodeAt() 做的 unicode反查工具 http://www.xiiid.com/blog/article.asp?id=162

 

转自:http://space.flash8.net/bbs/thread-338612-1-1.html