首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hamming码EASy68k

Hamming码EASy68k
EN

Stack Overflow用户
提问于 2018-03-17 05:13:44
回答 1查看 171关注 0票数 0

,我在这方面有困难,没有运气,并将感谢任何帮助!!谢谢

Hamming码是一种特殊的编码和解码信息技术,用于实现错误检测和纠错。理查德·汉明于1951年发表了他的著作。过去硬件的高成本使得这项技术很昂贵,因此不实用。一个CRAY计算机设计发布到市场,使用单一的纠错技术,如汉明文件所描述的。

编码

汉明码的一个重要特点是,算法的所有组成部分在数学上都是健全和实用的。编码过程是根据要发送的信息计算“偶数奇偶校验”比特,并将这些奇偶校验比特与所发送的信息一起发送。如果信息包含4位(abcd),则需要三个奇偶校验位(rst)。这些奇偶校验位称为校验位。然后将编码的消息结构为:

代码语言:javascript
复制
position    7   6   5   4   3   2   1
bit a   b   c   r   d   s   t

其中:

代码语言:javascript
复制
r is set to create even parity for bits 7, 6, 5 and 4;
s is set to create even parity for bits 7, 6, 3 and 2;
t is set to create even parity for bits 7, 5, 3 and 1.

您将在内存中对a、b、c和d信息位所在的字节的内容进行编码,如下所示:

代码语言:javascript
复制
xxxxabcd

例如,假设您有以下内存配置,您的任务将是组成编码的字节,如下所示:

存储器编码消息

代码语言:javascript
复制
2274    xxxx1011    01010101
2275    xxxx1001    01001100
2276    xxxx0011    00111110
EN

回答 1

Stack Overflow用户

发布于 2018-04-25 18:58:12

简单的答案是使用查找表(LUT)进行编码(以及解码)。

代码语言:javascript
复制
START:
        LEA     INPUT,A1
        LEA     OUTPUT,A2
        LEA     ENCODE,A0
ENCLOOP:
        MOVE.B  (A1)+,D0
        BMI.S   EXIT
        AND.W   #$0F,D0
        MOVE.B  (A0,D0.W),D1     ; encode byte
        MOVE.B  D1,(A2)+         ; save it
        BRA.S   ENCLOOP

EXIT:
        SIMHALT
        ; change table to match your Hamming scheme
ENCODE: DC.B $2E,$AD,$14,$97,$B2,$31,$98,$1B
        DC.B $E4,$67,$CE,$4D,$68,$EB,$52,$D1
INPUT:  DC.B $0B,$09,$03,$FF

OUTPUT: DS.B 3
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49332725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档