v2.0

探索数字世界的编码奥秘

交互式计算和可视化各种信息论编码算法,包括CRC校验、海明码、霍夫曼编码等12种编码工具

🛡
CRC循环冗余校验

计算数据的CRC校验码,用于检测数据传输错误

CRC原理:
  • CRC通过多项式除法生成校验码
  • 接收方用相同多项式验证数据完整性
  • 广泛应用于网络通信、存储系统等领域
  • 注意:这里用的是"不反转输入/输出"的变体(CRC-32/BZIP2、CRC-16/BUYPASS),与最常见的 ZIP/以太网/zlib 用的反转版 CRC-32 数值不同,两者不能直接互相校验
海明码编码与纠错

实现错误检测和纠正的海明码算法

海明码原理:
  • 在数据位中插入校验位,位置为2的幂次方
  • 每个校验位覆盖特定的数据位组合
  • 通过校验位的奇偶性定位错误位置
  • 能够检测并纠正单比特错误
🛡
BCH(15,7) 编码

真实的代数BCH码:GF(16)域上,生成多项式 g(x)=x⁸+x⁷+x⁶+x⁴+1,可纠正最多2位错误

BCH码特点:
  • 属于循环码的一种,具有代数结构,本工具在 GF(16)(本原多项式 x⁴+x+1)上真实实现
  • BCH(15,7):码长15,信息位7,8个校验位,设计纠错距离≥5
  • 解码使用 Peterson 算法求解错误位置多项式,可纠正1~2位错误
  • 广泛应用于卫星通信、存储系统
📊
卷积码编码

具有记忆性的纠错码,广泛应用于移动通信

卷积码原理:
  • 使用移位寄存器存储历史输入
  • 每个输入比特产生多个输出比特
  • 约束长度决定记忆深度
  • 用于GSM、3G、卫星通信
📄
ASCII编码转换

文本与二进制、十六进制、十进制之间的相互转换

ASCII编码说明:
  • ASCII使用7位二进制数表示128个字符
  • 大写字母A-Z: 65-90,小写字母a-z: 97-122
  • 数字0-9: 48-57
📄
Base64编码

将二进制数据转换为ASCII文本,用于数据传输

Base64特点:
  • 将任意二进制数据转换为可打印ASCII字符
  • 编码后数据体积增加约33%
  • 用于电子邮件附件、Data URL、API传输
📊
霍夫曼编码

基于字符频率的可变长度前缀编码,实现数据压缩

霍夫曼编码原理:
  • 统计每个字符的出现频率
  • 频率高的字符使用较短的编码
  • 保证任意编码都不是其他编码的前缀
  • 广泛应用于ZIP、JPEG等压缩算法
🗽
游程编码 (RLE)

简单的无损数据压缩算法,适合连续重复数据

RLE特点:
  • 将连续重复字符替换为"计数#字符"(用 # 分隔,字符本身若是 # 则写作 ##)
  • 加分隔符是为了避免原始数据里含数字时和计数产生歧义(例如文本"5559")
  • 对连续重复数据压缩效果好
  • 用于BMP、PCX等图像格式
📦
LZW压缩编码

字典压缩算法,用于GIF、TIFF等格式

LZW特点:
  • 动态构建字典,无需预先传输字典
  • 将字符串映射为固定长度码字
  • 用于GIF图像、Unix compress命令
🧮
奇偶校验

最简单的错误检测编码方法

奇偶校验说明:
  • 在数据末尾添加一个校验位
  • 偶校验:使整个数据中1的个数为偶数
  • 奇校验:使整个数据中1的个数为奇数
  • 只能检测奇数个比特错误
格雷码转换

相邻码字仅有一位不同的编码,用于减少错误

格雷码特点:
  • 相邻两个码字只有一位不同
  • 减少状态转换时的错误
  • 用于旋转编码器、Karnaugh图
💻
曼彻斯特编码

数字信号到物理信号的编码方式

曼彻斯特编码应用:
  • 以太网 (10BASE-T, 100BASE-TX)
  • RFID标签通信
  • 红外遥控协议
🔁
进制转换

二进制、十进制、八进制、十六进制之间的相互转换

进制说明:
  • 二进制:基数为2,使用0和1
  • 八进制:基数为8,使用0-7
  • 十进制:基数为10,使用0-9
  • 十六进制:基数为16,使用0-9和A-F