为了写计算机网络的CRC作业题方便验算,让ai写的CRC ``` function crc6WithQuotient(data, generator) { // 将数据转换为数组 let dataBits = data.split('').map(bit => parseInt(bit)); let genBits = generator.split('').map(bit => parseInt(bit)); // 在数据后面添加 k 个零 let k = genBits.length - 1; for (let i = 0; i < k; i++) { dataBits.push(0); } // 初始化商 let quotient = []; // 模 2 除法 for (let i = 0; i <= dataBits.length - genBits.length; i++) { if (dataBits[i] === 1) { quotient.push(1); // 记录商 for (let j = 0; j < genBits.length; j++) { dataBits[i + j] ^= genBits[j]; } } else { quotient.push(0); // 记录商 } } // 获取余数 R let rBits = dataBits.slice(dataBits.length - k); return { quotient: quotient.join(''), // 商 remainder: rBits.join('') // 余数 }; } // 输入数据 D 和生成器 G let D = '10101010101'; let G = '110011'; // 计算 CRC 和商 let result = crc6WithQuotient(D, G); console.log('商:', result.quotient); console.log('余数 R:', result.remainder); ``` Loading... 为了写计算机网络的CRC作业题方便验算,让ai写的CRC ``` function crc6WithQuotient(data, generator) { // 将数据转换为数组 let dataBits = data.split('').map(bit => parseInt(bit)); let genBits = generator.split('').map(bit => parseInt(bit)); // 在数据后面添加 k 个零 let k = genBits.length - 1; for (let i = 0; i < k; i++) { dataBits.push(0); } // 初始化商 let quotient = []; // 模 2 除法 for (let i = 0; i <= dataBits.length - genBits.length; i++) { if (dataBits[i] === 1) { quotient.push(1); // 记录商 for (let j = 0; j < genBits.length; j++) { dataBits[i + j] ^= genBits[j]; } } else { quotient.push(0); // 记录商 } } // 获取余数 R let rBits = dataBits.slice(dataBits.length - k); return { quotient: quotient.join(''), // 商 remainder: rBits.join('') // 余数 }; } // 输入数据 D 和生成器 G let D = '10101010101'; let G = '110011'; // 计算 CRC 和商 let result = crc6WithQuotient(D, G); console.log('商:', result.quotient); console.log('余数 R:', result.remainder); ``` Last modification:January 6, 2025 © Allow specification reprint Like 如果觉得我的文章对你有用,请随意赞赏