其他开发 计算16位校验和?

使用c中的程序读取文件,然后我必须对程序进行8位和16位校验和。到目前为止,我只完成了8位校验和。 这是我的理解 我读取文件并将信息存储在一个字符数组中,最后它需要换行。因此,例如,要计算8位校验和,本质上就是这样 文件共有3个字母(3个字母和换行符) 因此数组可容纳4个字符aaa +(换行符)(97 + 97 + 97 + 10) 据我所知,我在数组,然后做%256

0 2020-10-01 IT屋

其他开发 MODBUS RTU CRC16计算

我正在用C编写一个MODBUS CRC16计算器。以前我是做此操作的python,我想将其转换为C。我在网上找到了一些代码,但没有给我正确的答案。 对于我的python代码,我将其作为CRC16.py # !/ usr / bin / env python def calc(data): crc_table = [0x0000,0xC0C1,0xC181,0x0140,0xC

6 2020-10-01 IT屋

其他开发 在C中计算ICMPv6数据包的校验和

我正在尝试计算ICMPv6消息(确切地说是邻居广告)的校验和。 RFC 4443 将其描述为“整个ICMPv6消息的补码之和的16位补码”。 还有一些有关如何执行此操作的示例代码(尽管我认为它来自IPv4,但唯一的区别是总和中包括了什么,而不是如何计算它): RFC 1071 我从wireshark那里拿了一个小包,并按主机字节顺序输入了短裤。然后我打印正确的校验和,将其归零并

0 2020-10-01 IT屋

其他开发 Fletchers16校验和是否适合于小数据?

使用维基百科Fletcher的校验和的直接实现,我们将获得相同的校验和数据,例如“ BCA”和“ CAB”以及“ BAC”和“ ACB”。 这是预期的吗? Fletcher16校验和不应该解释块的顺序吗? 可以通过将索引与数据进行“或”操作来修复缺陷,如下代码所示。... uint16_t fletcher16(uint8_t * data,int count) {

6 2020-10-01 IT屋

其他开发 TCP校验和计算与Wireshark计算不匹配

我遇到一个问题,示例程序生成的tcp校验和(下面复制)与Wireshark计算的校验和不匹配。有人可以指出我要去哪里了吗? 在这里,我尝试了两种方法 tcp_checksum get_ipv6_udptcp_checksum。 同时使用这两种方法,得到两个不同的值,并且都与wireshark值不匹配。 我在这里复制IP和TCP标头详细信息。 IP标头: 0000

6 2020-10-01 IT屋

其他开发 在c中将2个字符加在一起的问题

我目前正在尝试在c中添加2个字符,即 char a = 127; char b = 127; char c = a + b; printf(“%d\n”,c); 打印出4294967278,我每次将两个数字相加而得到的ASCII码时实际上都遇到了问题值将大于127,这是怎么回事?字符不是8位还是256个可能的数字? 解决方案 可能是因为您的 ch

6 2020-10-01 IT屋

其他开发 在Linux上将iconv与WCHAR_T一起使用

我在Linux上具有以下代码:- rc = iconv_open(“ WCHAR_T”,SourceCode); 在使用iconv将数据转换为宽字符串之前( wchar_t )。 我试图了解它的功能,以便将其移植到平台上,其中参数1的选项“ WCHAR_T” 不存在。 这会导致子问题,例如: 在Linux上是否有 wchar_t 的单一

6 2020-10-01 IT屋

其他开发 如何在C中设置运行时字符集?

如何在Linux环境中使用C编程语言设置运行时字符集? 例如,我要将其设置为iso8859-1,utf -8或ascii。 解决方案 您需要更加清楚自己的意思。在大多数情况下,C并没有真正的字符集。它的字符串只是用空分隔的字节字符串,不做任何编码或解码。 C标准库中有一些函数,并且在POSIX中取决于当前语言环境。您可以使用use setlocale 设置当前语言环境;它默认为

6 2020-10-01 IT屋

其他开发 Windows上的本机窄字符串编码是什么?

Subversion API具有功能数量,用于从“本机编码”字符串转换为以UTF-8编码的字符串。我的问题是:Windows上的本机编码是什么? 解决方案 “本地编码”字符串是用任何用户正在使用的代码页。也就是说,它们是根据正确的代码页转换为适当字形的数字。假定文件是用这种方式保存的,而不是保存为UTF-8文件。 这是乔尔关于Unicode的文章。 具体是: 最终,这个O

6 2020-10-01 IT屋

其他开发 简单的int到char []转换

我有一个简单的问题 如何将整数(获取值0-8)简单地转换为char,例如char [2] in C? 谢谢 解决方案 main() { int i = 247593; char str [10]; sprintf(str,“%d”,i); //现在str包含整数,如字符 } 希望它将对您有帮助。

6 2020-10-01 IT屋