|
发表于 2013-2-18 22:59:06
|
显示全部楼层
本帖最后由 yxxiaobin 于 2013-2-19 17:57 编辑
对于支持16进制的编程环境来说(比如C、VB等编程语言),可以直接将他们进行相互转换。
如果你需要在不直接支持16进制的环境中,需要将格式化字符串转换成数值,比如将"FA2C5"转换成十进制数值,只要每位数字分别乘以他们的权值然后相加即可。
从右向左看,每位的权值分别是 16^0,16^1,16^2....16^n。所以"FA2C5"转换公式就是:5*16^0+C*16^1+2*16^2+A*16^3+F*16^4。
如果你在星际编辑器中使用,最好的方法是先定义变量,比如定义A=10,B=11 .... F=15,这样直接代入公式比较方便。
10禁止格式化成16进制的数字字符串就是逆向运算了。比较经典的算法是除16求余法,比如3257转换成16进制,首先计算3257/16,求整数商和余数,第一个余数就是十六进制数的左数第一位(注意:超过9的数需要转变成A-F的表示方法)。然后用整数商再除以16,求得的余数就是十六进制数的左数第二位,以此类推,直到整数商小于或等于15为止,然后串联起各个余数就是需要的结果了。 |
|