当前位置: 首页 > 知识库问答 >
问题:

需要CRC编程帮助,将CRC32从。NET类转换为C类

吴安和
2023-03-14

代码(用C编写):

unsigned long chksum_crc32 (unsigned char *block, unsigned int length)
{
   register unsigned long crc;
   unsigned long i;

   crc = 0xFFFFFFFF;
   for (i = 0; i < length; i++)
   {
      crc = ((crc >> 8) & 0x00FFFFFF) ^ crc_tab[(crc ^ *block++) & 0xFF];
   }
   return (crc ^ 0xFFFFFFFF);
}


/* chksum_crc32gentab() --      to a global crc_tab[256], this one will
 *              calculate the crcTable for crc32-checksums.
 *              it is generated to the polynom [..]
 */

void chksum_crc32gentab ()
{
   unsigned long crc, poly;
   int i, j;

   poly = 0xEDB88320L;
   for (i = 0; i < 256; i++)
   {
      crc = i;
      for (j = 8; j > 0; j--)
      {
         if (crc & 1)
         {
            crc = (crc >> 1) ^ poly;
         }
         else
         {
            crc >>= 1;
         }
      }
      crc_tab[i] = crc;
   }
}
      MemoryStream ms = new MemoryStream(System.Text.Encoding.Default.GetBytes(input));

            foreach (byte b in crc32.ComputeHash(ms))
                hash += b.ToString("x2").ToLower();

这里是原始网站和项目的C代码是从。http://www.codeproject.com/articles/35134/how-to-calculation-crc-in-c

任何解释都有帮助

共有1个答案

林项明
2023-03-14

或者只是谷歌一下...第二点击:http://www.opensource.apple.com/source/xnu/xnu-1456.1.26/bsd/libkern/crc32.c

从C#中回传它是很难做到的,这些算法中的大多数已经在C中实现了。

 类似资料:
  • 我对PHP非常非常新(今天早上开始),所以请原谅我的无知和缺乏常识。 我正在开发一个网站,该网站已经具备了获取表单数据并将其存储在MySQL数据库中的功能。我现在想要每次加载某个页面时从数据库中提取所述数据,并使用相同的方法将一些HTML div应用到我的页面中。本质上我有3个卡预定义在源代码,但我希望它添加更多的卡到页面,一旦它加载,只要有行在我的MySQL表。 这是我用来部分实现这一点的代码:

  • 我发现了这个美丽的小数到小数的函数:https://gist.github.com/natecook1000/9ecc976aaac9a035bddf 我已经操纵了我的应用程序的必要性,并希望在制作Kotlin版本的帮助上面。我确实尝试过自己进行转换,但我是一名新手,在科特林只呆了3周。我没有足够的经验来匹配不同语言之间的语法和语义,我自己也做不到。感谢您的帮助:) 我将上面的内容更改为输出16英

  • 问题内容: 您能否帮助我在Orcle Sql中将日期从“ 20120101”格式转换为DATE格式。 我查看了此链接,但未提及日期格式是否为自定义。 编辑:是否可以将任何排除规则写入转换函数? 像这样的“ 99999999”到“ 9999-12-31”?是否有可能? 问题答案:

  • 我的目标是采取现有的措施。docx文件,并使用docx4j将其从Linux命令行转换为PDF(http://www.docx4java.orghttp://www.docx4java.org).入门指南(http://www.docx4java.org/svn/docx4j/trunk/docx4j/docs/Docx4j_GettingStarted.html)指的是最新(2.8.1)软件包中实

  • 我仍然是Java的新手,我正在努力使这个程序适合我的任务。 问题是: 杰夫在你家附近经营着一家当地的零售店。他已与您签订合同,让您创建一个交互式应用程序,以帮助他增加员工工资。创建一个名为 Details 的类,该类将包含员工 ID 号、名字、姓氏和薪水的获取和设置方法。包括一个名为getUpdateSalary()的方法,该方法将使员工的薪水增加10%。在您的主类中,包括一个名为 () 的静态方

  • 需要帮助编写一个cassandra udf来添加/除/乘两个变量。尝试下面的代码,但它似乎不工作。而且我没有在Java的经验,所以可能是我不能调试。感谢你的帮助。