设待发送的数据t(x)为12位的二进制数据100100011100;CRC-4的生成多项式为g(x)=x4+x+1,求CRC检测码

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/15 15:59:06
设待发送的数据t(x)为12位的二进制数据100100011100;CRC-4的生成多项式为g(x)=x4+x+1,求CRC检测码
xWKOW+^tleY$*eJQJS6 (l1~^`ۈ{gf_w1ƀj!w{g=̻F^ʥLUOfª7V+ 1tE%¡B0O>8m!g/nxV쬹['7Ú<|gOI{32d,"_^920AMLXwE,.%/ jmVo0{QXC<[iCݎl^,Ei]Ѭz veK,M\ڼ&2e7o8{HW*4utJ6W#1ӀcGKNg.%uN+o \ qmsAͫmñp $f@H YHws+r&\ni>UDjv>ji\D孻o tVvjM,m 8]YEDKy2`ہ'/&Qq%5Idž5GEu;:˼aq۵ɤnMN@#Lx!QԱ9QFN&v4F#36ה`pli4SBrvR V%"!$cxhX껟G `//GO䌠,p~YX^LsrVrv1·ihNVLamG7YϦ`tVb xB!RKhkPffܥhQ}M;rItPU1&@=6ӟhƀꐖR7S'>kY٩4Y. fb "294@6 /g]rQpeN@jAbY2Y5/F66aw#rwxyY-єEFCZr* ڦ4^J货 Խ(bjO3'斉Hں)7;5q#QYar.xk$d [,fmv s^b`xQFWig. {QMa (?C)@[;L={q$5NBL])n \zTD!73;)Kڇl^;rpn2(8kNYX󵣠D{2/ȟ6 ~3^"vx}_Rwݻ8 ^{zrjZ r|3׽}UEc9v=c;:|q= j|Bf ^q|0_a*Zhx(yoCOdSUh

设待发送的数据t(x)为12位的二进制数据100100011100;CRC-4的生成多项式为g(x)=x4+x+1,求CRC检测码
设待发送的数据t(x)为12位的二进制数据100100011100;CRC-4的生成多项式为g(x)=x4+x+1,求CRC检测码

设待发送的数据t(x)为12位的二进制数据100100011100;CRC-4的生成多项式为g(x)=x4+x+1,求CRC检测码
设待发送的数据t(x)为12位的二进制数据100100011100;CRC-4的生成多项式为g
(x)=,阶数r为4,即10011.首先在t(x)的末尾添加4个0构成,数据块就成了10010
00111000000.然后用g(x)去除,不用管商是多少,只需要求得余数y(x).下表为给
出了除法过程.
除数次数
被除数/ g(x)/结果
余数
0
1 001000111000000
100111000000
1 0011
0 000100111000000
1
1 00111000000
1000000
1 0011
0 00001000000
2
1 000000
1100
1 0011
0 001100
从上面表中可以看出,CRC编码实际上是一个循环移位的模2运算.对CRC-4,我们假
设有一个5 bits的寄存器,通过反复的移位和进行CRC的除法,那么最终该寄存器中的值
去掉最高一位就是我们所要求的余数.所以可以将上述步骤用下面的流程描述:
//reg是一个5 bits的寄存器
把reg中的值置0.
把原始的数据后添加r个0.
While (数据未处理完)
Begin
If (reg首位是1)
reg = reg XOR 0011.
把reg中的值左移一位,读入一个新的数据并置于register的0 bit的位置.
End
reg的后四位就是我们所要求的余数.
这种算法简单,容易实现,对任意长度生成多项式的G(x)都适用.在发送的数据
不长的情况下可以使用.但是如果发送的数据块很长的话,这种方法就不太适合了.它
一次只能处理一位数据,效率太低.为了提高处理效率,可以一次处理4位、8位、16位
、32位.由于处理器的结构基本上都支持8位数据的处理,所以一次处理8位比较合适.
为了对优化后的算法有一种直观的了解,先将上面的算法换个角度理解一下.在上
面例子中,可以将编码过程看作如下过程:
由于最后只需要余数,所以我们只看后四位.构造一个四位的寄存器reg,初值为
0,数据依次移入reg0(reg的0位),同时reg3的数据移出reg.有上面的算法可以知道
,只有当移出的数据为1时,reg才和g(x)进行XOR运算;移出的数据为0时,reg不与g
(x)进行XOR运算,相当与和0000进行XOR运算.就是说,reg和什么样的数据进行XOR移
出的数据决定.由于只有一个bit,所以有种选择.上述算法可以描述如下,
//reg是一个4 bits的寄存器
初始化t[]={0011,0000}
把reg中的值置0.
把原始的数据后添加r个0.
While (数据未处理完)
Begin
把reg中的值左移一位,读入一个新的数据并置于register的0 bit的位置.
reg = reg XOR t[移出的位]
End
上面算法是以bit为单位进行处理的,可以将上述算法扩展到8位,即以Byte为单位
进行处理,即CRC-32.构造一个四个Byte的寄存器reg,初值为0x00000000,数据依次移
入reg0(reg的0字节,以下类似),同时reg3的数据移出reg.用上面的算法类推可知,
移出的数据字节决定reg和什么样的数据进行XOR.由于有8个bit,所以有种选择.上述
算法可以描述如下:
//reg是一个4 Byte的寄存器
初始化t[]={…}//共有=256项
把reg中的值置0.
把原始的数据后添加r/8个0字节.
While (数据未处理完)
Begin
把reg中的值左移一个字节,读入一个新的字节并置于reg的第0个byte的位置.
reg = reg XOR t[移出的字节]
End
算法的依据和多项式除法性质有关.如果一个m位的多项式t(x)除以一个r阶的生
成多项式g(x),将每一位(0=

1001000111001100

设待发送的数据t(x)为12位的二进制数据100100011100;CRC-4的生成多项式为g(x)=x4+x+1,求CRC检测码 为什么8位二进制数表示的范围是-128到127(有符号型数据),我不懂为什么是-128 十进制数-27对应的8位二进制补码为 用8位二进制数表示-25的补码为 设某计算机用12位二进制数表示一浮点数,从高位到低位依次为阶符1位,阶码3位(补码表示),数符1位尾数7位,(补码表示),则4.8125的规格化浮点数应表示为? 四位二进制数能表示的最大十进制数为?(解析) 有符号位的二进制数,在计算原码和补码时那个符号位是始终不变的吗?没有符号位的二进制数,补码(负数用补码表示)就是原码各位取反,末位+1.如 用8位二进制数表示十进制数 :12的原码为 crc的问题假设数据传输过程中需要发送15位的二进制信息g=101001110100001,这串二进制码可表示为代数多项式g(x) = x^14 + x^12 + x^9 + x^8 + x^7 + x^5 + 1,其中g中第k位的值,对应g(x)中x^k的系数.将g(x)乘以x^m 一个异步串行通信的计算问题不大懂.1.设异步串行通信的波特率为1000bps,1起始位,8数据位,1停止位,不采用奇偶校验位.试计算:(1)发送1位数据经历的时间;(2)发送1帧数据经历的时间;(3)在此情况 设机器数的字长为8位(含一位符号位),分别写出下列各二进制数的原码、补码和反码.0,-0,0.1000,-0.1000,0.1111,-0.1111,1101,-1101我想自己仔细学下 自然数x=abc化为二进制数是一个七位数,且最后六位为a.b.c.a.b.c,求x的值(过程) 循环冗余检验 (CRC) 算法原理假设数据传输过程中需要发送15位的二进制信息g=101001110100001,这串二进制码可表示为代数多项式g(x) = x^14 + x^12 + x^9 + x^8 + x^7 + x^5 + 1 这句话怎么理解啊 怎么表示为 十进制数转化为二进制规格化浮点数十进制数-0.1953125表示为二进制数规格化浮点数是多少,设浮点数的格式为阶符、尾符各为1位,阶码为3位,位数为7位,答案是E9CH,来个大神给具体明了的步骤 怎么把一个24位的二进制数处理成三个8位的二进制数 计算机组成原理,机器的运算问题已知二进制数X=2-010×0.101011 ,Y=2-011×(-0.110101),设阶为5位(包括2位阶符),用补码表示,尾数为8位(包括2位尾符),用补码表示,按浮点运算方法,求X+Y的值,运 要发送的数据为1101011011.采用CRC的生成多项式是P(x)=x4+x+1 .试求应添加在数 用8位无符号二进制数能表示的最大十进制数为____.为什么? 如何将十进制数28转换为32位的二进制数,求教