首页
社区
课程
招聘
[求助]请问这个算式如何列?????
发表于: 2006-8-14 14:30 5370

[求助]请问这个算式如何列?????

2006-8-14 14:30
5370
1010405983加上19770523的结果,再与330F222D,把结果取反,取反的结果与87299266相乘
结果除以1000000000取它的余数,余数与77359400相加。

答案是:2503242208
可我不知是怎么算的,利用windows计算器,结果和它不一样。

希高手指点一下。不胜感谢!!!

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
2
你的数据是十六进制的还是十进制的?
按你的第一个数据看:1010405983应该是十进制的数,十六进制的数达不到10位数(你的机器不会是64位的吧?)
但按你的第三个数据来看:330F222D,又应该是十六进制的数,十进制的数没有字母的。不会是你上面写的数有十六进制又有十进制的???
2006-8-14 14:58
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我也搞不清,是从汇编指令里找出来的。
00426A8E   |.  8B8418 B00000>mov eax,dword ptr ds:[eax+ebx+B0]   得到我的机器码1010405983
00426A95   |.  5B            pop ebx
00426A96   |.  05 23057719   add eax,19770523                机器码加上19770523(作者的生日?)
00426A9B   |.  35 2D220F33   xor eax,330F222D                结果在与330F222D异或
00426AA0   |.  F7D0          not eax                         结果取反
00426AA2   |.  69C0 66922987 imul eax,eax,87299266           结果与87299266相乘
00426AA8   |.  F7F1          div ecx                         结果除以1000000000
00426AAA   |.  8BC2          mov eax,edx                     取它的余数
00426AAC   |.  05 00943577   add eax,77359400                余数与77359400相加就是真正的注册码!
00426AB1   |.  83C4 08       add esp,8
00426AB4   |.  C2 1400       retn 14
2006-8-14 15:04
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
4
1010405983 -> 3C39925Fh
19770523h
330F222Dh
87299266h
1000000000 -> 3B9ACA00h
77359400

(not((3C39925Fh + 19770523h) xor 330F222Dh) * 87299266h) mod 3B9ACA00h + 77359400 = 953471E0h -> 2503242208
2006-8-14 15:17
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
5
上面的数将1010405983和1000000000转成十六进制的数再计算,最后将十六进制的结果转成十进制就是结果。
2006-8-14 15:20
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
谢谢!谢谢!
是利用windows计算器算的吗?
我怎么还算不对呢?

如果机器器是0840713576的话,结果是多少。
我的算法是:
0840713576=321c4568h
321c4568h+19770523h=4B934A8Bh--xor--330f222dh=789C68A6h
not(789C68A6h)=FFFFFFFF87639759h---*87299266h=C051EEC9EA400F76--mod3bpaca00h=16BF3976h--+77359400h=8DF4CD76h---=2381630838
对不对?请您检验一下可以吗?谢谢啦!!!
2006-8-14 15:36
0
雪    币: 270
活跃值: (176)
能力值: ( LV12,RANK:370 )
在线值:
发帖
回帖
粉丝
7
not(789C68A6h)=FFFFFFFF87639759h
--------------
寄存器是32位的,不可能出现这样的结果,后面的计算当然就不对了.
2006-8-14 17:00
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
8
用注册机算的。
FFFFFFFF87639759h?你的机器是64位的?32位的机器应该不能得出这个值。
2006-8-14 19:18
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
我的机器是赛扬D2.4G,512M内存。
在计算器中的结果就是前面有好几个F,能不能只用F后面的数计算?
谢谢!!!

哪位好心的大侠给我写个计算程序(VC++)
#include<iostream.h>
#include<conio.h>
void main()
{
  unsigned long int x=0x3c39925f;
    x=(!((x+0x19770523)||0x330f222d))*0x87299266%0x3b9aca00+77359400;
      cout <<dec<<x<<endl;
}

       
以上程序错在哪里,我的计算结果和人家的对不上??????

2006-8-14 20:05
0
雪    币: 270
活跃值: (176)
能力值: ( LV12,RANK:370 )
在线值:
发帖
回帖
粉丝
10
不要把逻辑运算和位运算搞混了.
------------------------------------
#include<iostream>

int main()
{
  unsigned long int x=0x3c39925f;
  
  x=((~((x+0x19770523) ^ 0x330f222d))*0x87299266%0x3b9aca00)+0x77359400;
   
  std::cout <<std::dec<<x<<std::endl;
   
  system("pause");
      
  return 0;
}
2006-8-15 10:37
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
最初由 ikki 发布
不要把逻辑运算和位运算搞混了.
------------------------------------
#include<iostream>

int main()
........


谢谢大侠。我水平太低了。唉,努力啊!
2006-8-15 13:31
0
游客
登录 | 注册 方可回帖
返回
//