按键精灵读内存
按键精灵里面自带的文滨内存读取插件只能读取4Bytes的内存数据,可是很多游戏里面的坐标都是用浮点型的来表示的。
那么如何把读出来的长整型数据转换成浮点型的呢。。
我们先看下面的一段说明
QUOTE:
对于大小为32-bit的浮点数(32-bit为单精度,64-bit浮点数为双精度,80-bit为扩展精度浮点数),
1、其第31bit为符号位,为0则表示正数,反之为复数,其读数值用s表示;
2、第30~23bit为幂数,其读数值用e表示;
3、第22~0bit共23bit作为系数,视为二进制纯小数,假定该小数的十进制值为x;
则按照规定,该浮点数的值用十进制表示为:
=(-1)^s*(1+x)*2^(e-127)
(-1)^a*(1+c)*2^(b-127)
对于49E48E68来说,
1、其第31bit为0,即s=0
2、第30~23bit依次为10010011,读成十进制就是147,即e=147。
3、第22~0bit依次为11001001000111001101000,也就是二进制的纯小数0.11001001000111001101000,其十进制形式为0.78559589385986328125,即x=0.78559589385986328125。
该浮点数的十进制表示
=(-1)^s*(1+x)*2^(e-127)
=(-1)^0*(1+0.78559589385986328125)*2^(147-127)
=1872333
你可以用windows自带的计算器算一下
也就说
第一步:将你读出的10进制的数值转换成2进制的,如果位数不够32位,记得在首位补0!(好像vbs里面没有10进制转换成2进制的函数,偶是根据算法自己写了个转换子程序)。
拿上面的例子来说,如果内存中的数据是49E48E68,那么我们实际读出的内存数据也就是10进制的数值为:1239715432
转换成2进制的数值为:1001001111001001000111001101000这是一个31位的数值,我们补0之后也就是:
01001001111001001000111001101000
第二步:将这个2进制的数值分解成3部分,根据上面的公式进行分别的判断。(分解可以参考按键宝典里面的vbs标准函数中的字符串处理函数部分)
1、其第31bit为0,即s=0(这里要注意,32bit的2进制数中,最右边的为第0位,最左边的,在这个例子中也就是我们补0的那位为第31位。)
2、第30~23bit依次为10010011,读成十进制就是147,即e=147。
3、第22~0bit依次为11001001000111001101000,也就是二进制的纯小数0.11001001000111001101000,其十进制形式为0.78559589385986328125,即x=0.78559589385986328125。(这里一定要注意22-0bit的是2进制的小数位,不是整数。2进制小数转成10进制小数可以参看下面说明。)
QUOTE:
整数部分从低位至高位1,2,4,8,16,32......
小数部分从小数点位置开始:1/2,1/4,1/8,1/16....
即:1010.1011=>8+2+1/2+1/8+1/16
(“^”代表幂)
1101.0111=>1*2^3+1*2^2+0*2^1+1*2^0+0*2^(-1)+1*2^(-2)+1*2^(-3)+1*2^(-4)
小数部分是如果小数点后第一位为1的话就加上0.5(即1/2),第二位加上0.25(1/4),第三位加上0.125(1/8),接着就是1/16,1/32,1/64.....。无论算出多少都是正确的。你也可以后过来算,你算了十进制数后,就拿小数部分*2,
如7/16=0.4375
0.4375*2=0.875整数部分为0即当前二进制数值为:0.0
0.875*2=1.75整数部分为1即当前二进制数值为:0.01去掉1后继续运算。
0.75*2=1.5整数部分为1即当前二进制数值为:0.011去掉1后继续运算。
0.5*2=1.0整数部分为1即当前二进制数值为:0.0111去掉1后为0,运算结束。
0.4375的二进制数为:0.0111
第三步:根据计算公式求出结果
该浮点数的十进制表示
=(-1)^s*(1+x)*2^(e-127)
=(-1)^0*(1+0.78559589385986328125)*2^(147-127)
=1872333
思路介绍完了,我自己验证过,完全可以使用。。。具体代码就不提供了,大家多动动脑子吧。。。。
天猫精灵怎么开
天猫精灵首先将主机与电源连接,指示灯亮起并开机,下载并安装天猫精灵APP,将手机连接到wifi网络,按照天猫精灵APP的指示完成AI助手的配网及登录。天猫精灵开机步骤介绍
是天猫精灵连接上电源。
从手机中下载天猫精灵app,连接网络后用你好天猫精灵或天猫精灵即可唤醒。
.蓝牙配对:对天猫精灵AI助手说:“你好天猫”;说出:“蓝牙配置”开启蓝牙配对;听到提示音后,在手机蓝牙中选择天猫精灵AI助手设备并连接。
精灵计算器怎么用
功能介绍:赛尔号精灵计算器是赛尔号各种精灵能力值计算以及个体值计算的软件,通过此赛尔号精灵数据计算器,你可以得出精灵的个体值和相应等级的能力值。使用方法:用个体值计算器计算最多会得出6个个体值(比如31、30、28、31、28、29),最小个体值--最大个体值(比如28--31)是此精灵个体值的取值范围,然后把这些个体值分别填入右边能力值计算器中计算,其中有一个个体值算出的能力值跟你精灵能力值匹配,则这个个体值就是你精灵的能力值了(比如你的精灵是10级,你把刚刚算出的个体值31填入右边算出的能力值跟你精灵能力值相匹配,说明你精灵的个体值就是31了)。呵呵O(∩_∩)O~有人炒!
筑梦精灵宠物计算器使用方法
功能介绍:赛尔号精灵计算器是赛尔号各种精灵能力值计算以及个体值计算的软件,通过此赛尔号精灵数据计算器,你可以得出精灵的个体值和相应等级的能力值。使用方法:用个体值计算器计算最多会得出6个个体值(比如31、30、28、31、28、29),最小个体值--最大个体值(比如28--31)是此精灵个体值的取值范围,然后把这些个体值分别填入右边能力值计算器中计算,其中有一个个体值算出的能力值跟你精灵能力值匹配,则这个个体值就是你精灵的能力值了(比如你的精灵是10级,你把刚刚算出的个体值31填入右边算出的能力值跟你精灵能力值相匹配,说明你精灵的个体值就是31了)。呵呵O(∩_∩)O~有人炒!