当前位置:编程学习 > C#/ASP.NET >>

帮忙把这段JAVA程序翻译成C#版本的吧~~~~~~~~

帮忙把这段JAVA程序翻译成C#版本的吧~~~~~~~~
public class CRC {
public static short crcRegInit = (short) 0xFFFF;
public static short CCITT16poly = 0x1021;

/**
 * Use CCITT16 crc polynormial to generate CRC
 * 
 * @param message
 *            the byte buffer to be coded
 * @param offset
 *            the starting byte position (inclusively)
 * @param length
 *            the ending byte position (exclusively)
 * @return
 */
public static short crc16(byte[] message, int offset, int ending) {
short crcReg = crcRegInit;
for (int i = offset; i < ending; ++i) {
crcReg = singleByteCrc16(crcReg, CCITT16poly, message[i]);
}
return crcReg;
}

public static short singleByteCrc16(short crcReg, short poly, byte data) {
int val = unsignedByte2int(data);//?

int xorFlag;
short dcdBitMask = 0x0080;

for (int i = 0; i < 8; ++i) {
xorFlag = crcReg & 0x8000;
crcReg <<= 1;
if ((val & dcdBitMask) == dcdBitMask)
crcReg |= 1;

if (xorFlag != 0)
crcReg ^= poly;

dcdBitMask >>= 1;
}

return crcReg;
}

/**
 * Append CCITT16 crc code to a byte buffer
 * 
 * @param message
 *            the message to be coded, assume it always has two extra bytes
 *            from the ending position
 * @param offset
 *            the starting byte position to calculate crc
 * @param ending
 *            the ending byte position (exclusive) to calculate crc
 */
public static void appendCRC16(byte[] message, int offset, int ending) {
short crc = crc16(message, offset, ending);
String crchex = Converters.int2hex(Converters.unsignedShort2int(crc));
byte[] crcbytes = Converters.hex2dec(crchex);
//by Leeric 2012.12.13, bug fix for small crc (1 byte)
if(crcbytes.length != 1) {
message[ending] = crcbytes[0];
message[ending + 1] = crcbytes[1];
}
else {
message[ending] = 0;
message[ending + 1] = crcbytes[0];
}
}

} C# Java --------------------编程问答-------------------- unsignedByte2int这个方法对应的代码您没有贴出来 --------------------编程问答-------------------- google csharp crc16 --------------------编程问答--------------------
引用 1 楼 lyq8376 的回复:
unsignedByte2int这个方法对应的代码您没有贴出来

额,工程师没有给我也,我问问
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,