进制转换在编程中都常会用到,像一些语言更会自带进制转换的方法。AS3虽然没有现成的转换,不过我们可以结合使用parseInt和toString处完成各种进制的转换。其中parseInt是把2/8/10/16/32进制转换成10进制,然后再使用toString把10进制转换成2/8/10/16/32进制。
function systemChange(txt:String,radix:uint,target:uint):String
{
var num:Number = parseInt(txt,radix); //把2~32进制转换为10进制
return num.toString(target); //把10进制转换为2~32进制
}
var txt = "FF6600"
txt = systemChange(txt,16,10); //16转10
trace(txt); //输出: 16737792
txt = systemChange(txt,10,8); //10转8
trace(txt); //输出: 77663000
txt = systemChange(txt,8,2); //8转2
trace(txt); //输出: 111111110110011000000000
txt = systemChange(txt,2,32); //2转32
trace(txt); //输出: fupg0
txt = systemChange(txt,32,16); //32转16
trace(txt); //输出: ff6600