Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1180220
  • 博文数量: 252
  • 博客积分: 5421
  • 博客等级: 大校
  • 技术积分: 2418
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-17 12:59
文章分类

全部博文(252)

文章存档

2017年(3)

2016年(18)

2015年(31)

2014年(18)

2013年(7)

2012年(8)

2011年(12)

2010年(30)

2009年(32)

2008年(57)

2007年(36)

分类: C/C++

2013-09-04 12:59:31


  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <math.h>

  4. unsigned create_sign32_const(const char* str_src)
  5. {
  6.      unsigned times, i;
  7.      unsigned sign, tint;
  8.      times = strlen(str_src)/4;
  9.      sign=0;
  10.      for (i=0; i<times; i++){
  11.          sign += *( (unsigned int *) (str_src + i*4) );
  12.      }
  13.      times = times%32;
  14.      sign = (sign<<times)|(sign>>(32-times));
  15.      tint=0;
  16.      strcpy( (char*)(&tint), str_src+i*4);
  17.      sign += tint;
  18.      return sign;
  19. }

  20. int main(int argc, char** argv)
  21. {
  22.     if (argc != 2) {
  23.         printf("usage: str2id string\n");
  24.         return 0;
  25.     }
  26.     char *str = argv[1];
  27.     unsigned id = create_sign32_const(str);
  28.     printf("%u\n", (unsigned)fmod(id,64));
  29.     return 0;
  30. }

阅读(1143) | 评论(0) | 转发(0) |
0

上一篇:xshell自动登录脚本

下一篇:php文件缓存类

给主人留下些什么吧!~~