package computernetwork;
// 循环冗余检验 Cyclic Redundancy Check (CRC)
public class CRC {
private int[] generatingCode; // 生成码
// 设置生成码
public void setGeneratingCode(String str) {
generatingCode = stringToArray(str);
}
// 获取帧检验序列
public String getFCS(String message) {
for (int i = 0; i < generatingCode.length - 1; i++) {
message += "0";
}
return getRemainder(stringToArray(message));
}
// 判断接受码是否产生跳变
public boolean judge(String res) {
return Integer.parseInt(getRemainder(stringToArray(res))) == 0;
}
// 将01字符串转换为数组
private int[] stringToArray(String str) {
char[] chars = str.toCharArray();
int[] res = new int[chars.length];
for (int i = 0; i < chars.length; i++) {
res[i] = chars[i] - '0';
}
return res;
}
// 求余数
private String getRemainder(int[] code) {
int len = code.length - generatingCode.length + 1;
for (int i = 0; i < len; i++) {
if (code[i] != 0) {
for (int j = 0; j < generatingCode.length; j++) {
code[i + j] ^= generatingCode[j];
}
}
}
StringBuilder res = new StringBuilder();
for (int i = len; i < code.length; i++) {
res.append(code[i]);
}
return res.toString();
}
}
class TestCRC {
public static void main(String[] args) {
CRC crc = new CRC();
crc.setGeneratingCode("10011");
System.out.println(crc.getFCS("1101011011")); // 1110
System.out.println(crc.judge("11010110111110")); // true
System.out.println(crc.judge("11010110111011")); // false
}
}
JSP 自定义标签实现数据字典的实例 1.关于JSP标签的好处就不再罗嗦 数据字典就是...
1.建立Recordset对象 复制代码 代码如下: Dim objMyRst Set objMyRst=Server.Cr...
本文实例为大家分享了canvas实现五子棋小游戏的具体代码,供大家参考,具体内容...
长草 题目描述 小明有一块空地他将这块空地划分为 n 行 m 列的小块每行和每列的...
在ASP.NET Core 3.0中路由配置和2.0不一样了 一、MVC 服务注册 ASP.NET Core 3.0...
一、div/div和span/span 1.div/div标签 div/div标签可定义文档中的分区或节(div...
GitLab CI/CD 是一个内置在 GitLab 中的工具,用于通过持续方法进行软件开发: C...
在php中有一些函数,是为了数组的使用而辅助的。本篇要提到的是get_object_vars(...
锵锵~最近看到了bit哥开的新坑Python游戏开发灵机一动想到了新系列要写什么——...
2021年已经到来,微软也开始继续Windows 10的更新,以此来解决系统中出现的不少B...