有一段C代码,要在VC#里使用,很少的代码,请翻译或者指点下,谢谢。
UINT16 culCalcCRC(BYTE crcData, UINT16 crcReg) {
UINT8 i;
for (i = 0; i < 8; i++) {
if (((crcReg & 0x8000) >> 8) ^ (crcData & 0x80))
crcReg = (crcReg << 1) ^ 0x8005; //line5
else
crcReg = (crcReg << 1);
crcData <<= 1;
}
return crcReg;
}// culCalcCRC
我想严格地用byte代BYTE, ushort代UINT16,结果第5行转换不来了。
UINT16 culCalcCRC(BYTE crcData, UINT16 crcReg) {
UINT8 i;
for (i = 0; i < 8; i++) {
if (((crcReg & 0x8000) >> 8) ^ (crcData & 0x80))
crcReg = (crcReg << 1) ^ 0x8005; //line5
else
crcReg = (crcReg << 1);
crcData <<= 1;
}
return crcReg;
}// culCalcCRC
我想严格地用byte代BYTE, ushort代UINT16,结果第5行转换不来了。
解决方案 »
- asp.net调用matlab的制作网站,在vs2010上正常运行,但在服务器IIS无法显示计算的结果
- 为何这个cs文件的图标这么特殊哪?
- 工具栏上的图片是怎么做到和背景溶为一体的?
- 如何在.net中实现即时通讯软件的编程资源、指导、代码?类似QQ的功能。
- 字体与字符集的问题
- 重写textbox的onKeyPress事件
- C#接写的程序,编译成.EXE文件后,是不是只能在安装 .NET 框架的机器上运行???
- 为什么有些程序要写入注册表
- 从A页面中 获取两个参数 传递到 B页面 不知如何实现 请高手指点!!!
- 如何用ADO。NET建立ACCESS 数据库或者调用DAO。DLL 的CREATEDATABASE方法?
- 请问如下举例采用的何种通讯方式?
- 如何将几个数字进行搭配相加,得出全排列组合。
crcReg = (ushort)(crcReg << 1) ^ Convert.ToUInt16(0x8005);
结果提示:
错误 1 无法将类型“int”隐式转换为“ushort”。存在一个显式转换(是否缺少强制转换?) d:\My Documents\Visual Studio 2010\Projects\ForwordErrorCorrection\ForwordErrorCorrection\Form1.cs 42 30 ForwordErrorCorrection我搞C#比较少,已经黔驴技穷了。
ushort culCalcCRC(byte crcData, ushort crcReg)
{
byte i;
for (i = 0; i < 8; i++)
{
if ((((crcReg & 0x8000) >> 8) ^ (crcData & 0x80)) > 0)
crcReg = (ushort)((crcReg << 1) ^ 0x8005);
else
crcReg = (ushort)(crcReg << 1);
crcData <<= 1;
}
return crcReg;
}