【发布时间】:2014-10-25 11:59:29
【问题描述】:
我已将一些数据序列化为 ostream,以通过设备文件发送。以二进制格式。
打印 ostream 的内容时我得到这样的输出,这很好。
现在我需要使用某种算法来计算校验和:
因为我使用的是文件流,所以我有字符串格式的二进制数据:
例如:
46774101101140410MyMakeMyModel10000....
我想使用算法计算校验和..
就像
校验和由所有 16 位字的 2 补码相加计算得到
如果八位字节数为奇数,则最终八位字节假定为在 MSB 中填充的 16 位 0。
我正在寻找解决方案,请建议一个万无一失的方法输入是字符串或字符 *
谢谢
【问题讨论】:
-
此代码具有未定义的行为。如果输入字符串开始添加一个奇数地址,执行此操作很可能引发硬件异常。
-
你好,kerrek,请不要查看代码,我的意思是我需要进行类似的校验和计算,但我没有 uint16_t* 而不是 ostream
标签: c++