我有字符串:02 03 04 50 00 01
。我需要计算这个字符串的CRC。
我有一个计算CRC的函数:
public static UInt16 ModRTU_CRC(ushort[] buf, int len)
{
UInt16 crc = 0xFFFF;
for (int pos = 0; pos < len; pos++)
{
crc ^= (UInt16)buf[pos];
for (int i = 8; i != 0; i--)
{
if ((crc & 0x0001) != 0)
{
crc >>= 1;
crc ^= 0xA001;
}
else
crc >>= 1;
}
}
return crc;
}
我想将一个字符串强制转换为ushort数组:
ushort[] result = cmd.Split(' ').Select(item => Convert.ToUInt16(item, 16)).ToArray();
但是返回给我的是这样一个数组:2 3 4 80 01
。
请告诉我为了正确计算CRC我应该做些什么。
看来,您希望将两个字节
组合到ushort
中,即对于给定的
string cmd = "02 03 04 50 00 01";
你想要得到
{0x0203, 0x0405, 0x0001}
如果是你的话,
using System.Linq;
...
string cmd = "02 03 04 50 00 01";
ushort[] result = cmd
.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)
.Select((value, index) => new { index, value = Convert.ToInt32(value, 16) })
.GroupBy(item => item.index / 2, item => item.value)
.Select(group => (UInt16)(group.Aggregate((s, a) => s * 256 + a)))
.ToArray();
Console.WriteLine(string.Join(" ", data.Select(item => item.ToString("x4"))));
0203 0450 0001
int skip = 2;
ushort[] data = source
.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)
.Select((value, index) => new { index, value = Convert.ToInt32(value, 16) })
.GroupBy(item => item.index >= skip ? item.index / 2 : -item.index - 1,
item => item.value)
.Select(group => (UInt16)(group.Aggregate((s, a) => s * 256 + a)))
.ToArray();
Console.WriteLine(string.Join(" ", data.Select(item => item.ToString("x4"))));
0002 0003 0450 0001
主要内容:1. 如何创建计算字段,2. Tableau计算编辑器,3. 创建一个公式,4. 如何使用计算字段Tableau有许多用于字符串操作的内置字符串函数,例如:连接,比较和替换字符串中的部分字符等。 以下是创建计算字段并在其中使用字符串函数的一些步骤: 1. 如何创建计算字段 连接到Sample superstore等数据源后。 然后,转到“分析(Analysis)”菜单。 单击“创建计算字段(Create Calculated Field)”,如下图所示: 2. Tableau计算编辑器
我对手动输入的字符串计数有点困惑。我基本上是在计算单词的数量和没有空格的字符的数量。如果可能的话,谁能帮助计算元音? 到目前为止,我只有这些:
问题内容: 我正在做一个作业,在该作业中,我必须编写程序以读取用户的字符串,并打印出字符串中出现次数的字母。 例如,“ Hello world”应该打印出“ h = 1 e = 1 l = 3 o = 2 …等”,但是我只写“ hello world”和字母总数。 我不能使用hashmap函数,只能使用数组。有人可以给我一两个提示,提示如何从下面的书面代码继续进行操作以获得我的首选功能?我不完全了
问题内容: 我认为我已经很好地理解了这一点,但我认为该陈述是错误的。怎么说包含空格,加1。 编辑: 我发现(感谢Blender)可以用更少的代码来做到这一点: 问题答案: 使用方括号,而不是括号: 或: 您也可以使用:
问题内容: 如何计算特定字符串在另一个字符串中出现的次数。例如,这就是我要使用Javascript进行的操作: 问题答案: 在正则表达式(简称 全球 )说,搜索整个字符串,而不是只要找到第一次出现。这匹配两次: 并且,如果没有匹配项,则返回:
本文向大家介绍python字符串,数值计算,包括了python字符串,数值计算的使用技巧和注意事项,需要的朋友参考一下 Python是一种面向对象的语言,但它不像C++一样把标准类都封装到库中,而是进行了进一步的封装,语言本身就集成一些类和函数,比如print,list,dict etc. 给编程带来很大的便捷 Python 使用#进行单行注释,使用 ''' 或 """ 进行多行注释 数值计算 字