魔兽jass里字符串和整数相互转换的具体算法

我知道地图编辑器里的语句可以把一个字符串转换为整数,
事实上代码中一个整数可以用类似于'XXX'的字符串表示出来。
例如:'A0NS' 和 1093684819 是等价的。

问题是,这两种的具体算法是什么,就是说怎样用笔算从'A0NS' 得到1093684819,怎样从1093684819得到'A0NS'。

取"A","0","N","S"的ascii码,就是41304E53
然后转换为10进制是1093684819
算法的话也很简单
sum = hex("A")*16^8 + hex("O")*16^4 + hex("N")*16^2 + hex("S")*16^0;
//hex()为进制转换的函数
hex( int n){
int i=0,p,sum=0;
while(n>0){
p = (n%10) * power(16,i);
n = n/10;
sum += p;
i++;
}
return sum;
}
//power()是计算次方的函数,就不浪费时间了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-08-26
取每个字符的ASC值(用十六进制表示),比如A为0x41,0为0x30,N为0x4E,S为0x53。连起来就是0x41304e53转为十进制就是109364819
第2个回答  2008-08-26
弱弱的问一句
我手头有个这样的软件
双头大大要不要
叫:ASCII及进制转换 V4.0
第3个回答  2008-08-26
A0NS
十六进制ASCII码是41304E53
41304E53转成十进制就是109368481

参考资料:http://tieba.baidu.com/f?kz=470922141

第4个回答  2008-08-26
'A0NS'
=0x41*0x100^3 + 0x30*0x100^2 + 0x4E*0x100^1 + 83*0x100^0
=65*16777216 + 48*65536 + 78*256 + 83*1
=1090519040 + 3145728 + 19968 + 83
=1093684819
相似回答