使用Matlab生成一个 60位的随机数,用2048个12位的多项式对其做除法运算,查看其余数的重复情况。
用足够多的随机数60位随机数做第一问的除法运算,观察总体的重复的概率分布。

第一次用matlab编程。
查找了crc循环冗余的资料,就跟着crc求余数的思路。

Crc方法:把12位多项式当做除数,把多项式系数变成二进制01编码,最高次1, 于是12位多项式相
然后,把生成的随机数也变成二进制,在其后面补R=(多项式长度-1)个0,
再除以多项式,二进制除法就相当于异或计算,不进位。余数的取最后的R位。(做到这里就达到题目的要求了)再将随机数的后R位用余数替换,除以二进制多项式,若余数为0,则正确,不为0,错误。

1.十进制转二进制dec2bin
转化后的二进制格式,要转变成向量矩阵,才能进行矩阵合并,进而补0
oba=dec2bin(a) ;
d=[];
for l=1:length(oba)
d=[d str2num(oba(l))];
end
d;
2.设置一个空矩阵x[],最后填充时,格式要对,还要把向量转成十进制
r=num2str(r)
r=bin2dec (r

  1. 1XXXXXXXXXXX共2048个12位多项式,十进制时2048到4095
    后一位确定为1,所以都不能被2整除所以可以作为判断条件。
  2. [q,v]=deconv()相当于多项式除法,结果可能为负数
    Mod2,模2取余法,求得余数。
    5.用二进制计算要注意之前各种数据格式的转化!!格式不对,会报错。而且有时回报2^53的错

    这是crc,运行100次的概率图

    这是用十进制直接除100次的概率图
    十进制运行1W次的概率。
    用crc算法,matlab运行太慢,里面有太多的for循环。其核心是多项式除法,即异或除法,所以和10进制除法不一样。

附加crc代码:
x=[];
i=0;
a=unidrnd(2^60-1)
oba=dec2bin(a) ;
d=[];
for l=1:length(oba)
d=[d str2num(oba(l))];
end
d;

for m=2048:4095

     obj=dec2bin(m) ;c=[];for j=1:length(obj)c=[c str2num(obj(j))];endc;

R=length(c)-1;
[q,r] = deconv([d zeros(1,R)],c);

r=mod(r(end-R+1:end),2);
r=num2str(r);
r=bin2dec®;
i=i+1;
x(i)=r;
end
end
fprintf(‘x=%dx[]’)


第二问
假设用2000个随机数分别求第一个多项式…第2048个多项式,看哪个余数的重复最少。即验证2048个crc多项式哪个最优。
只用把除数的循环提前,再加一个2000次循环就可以了。

把数据导入excel中操作比较方便,筛选出余数个数最多的多项式。111001010011

CRC二进制除法的一些总结相关推荐

  1. CRC循环冗余校验引起的二进制除法如何计算风暴

    文章目录 知道两个概念 模2和 模2减 两种不同的二进制除法 除法 模2除法 CRC 循环冗余校验 编码过程 差错检测能力 谈CRC循环冗余校验的之前,先把二进制除法说一下,先回忆一下十进制之间的除法 ...

  2. 计算机网络:二进制除法与CRC校验

    在此记录两道计算机网络教材的课后题: 1.要发送的数据为1101011011.采用CRC的生成多项式是P(X)=X^4+X+1.试求应添加在数据后面的余数.数据在传输过程中最后一个1变成了0,问接收端 ...

  3. 二进制除法\模2除法

    二进制除法: http://blog.csdn.net/luishen/article/details/5735360 http://baike.baidu.com/link?url=TRC6yBKY ...

  4. 计算机组成二进制除法,计算机组成原理:3.4.1 定点原码 除法器

    <计算机组成原理:3.4.1 定点原码 除法器>由会员分享,可在线阅读,更多相关<计算机组成原理:3.4.1 定点原码 除法器(28页珍藏版)>请在人人文库网上搜索. 1.计算 ...

  5. 二进制除法移位相减_二进制除法计算器

    二进制除法怎么算(共2篇)二进制的运算法则1 2 微型计算机运算基础1 2 1 二进制数的运算方法电子计算机具有强大的运算能力,它可以进行两种运算:算术运算和逻辑运算.1.二进制数的算术运算二进制数的 ...

  6. 计算机原理中的二进制除法,多字节除法--汇编实现原理

    2.1长除法 长除法适用于整式除法.小数除法.多项式除法(即因式分解)等较重视计算过程和商数的除法,过程中兼用了乘法和减法. 长除法与手工计算除法方法一致. 以8592÷24为例: 从计算过程可以看出 ...

  7. 二进制除法移位相减_verilog移位相减实现除法(转载)

    引言 除法器在FPGA里怎么实现呢?当然不是让用"/"和"%"实现. 在Verilog HDL语言中虽然有除的运算指令,但是除运算符中的除数必须是2的幂,因此无 ...

  8. 计算机中的二进制除法

    文章目录 计算机中的二进制除法 一.原码除法的规则 二.恢复余数法 三.加减交替法 计算机中的二进制除法 一.原码除法的规则 原码除法运算规则如下: (1)除数≠0.对于定点纯小数,|被除数|< ...

  9. 简易理解并计算二进制除法

    二进制除法可以算是二进制算法中最难(相对加减乘)的一个,有些人在理解上出现一些误差,下面教大家如何简单理解并计算二进制除法 首先介绍一下二进制的运算规则:1÷1=1:1÷0=0(无意义):0÷1=0: ...

最新文章

  1. 监听android 上的完成按键
  2. c语言课后题2.52.8答案,C语言练习题(8)-只要答案不要分析,要速度,要正确51.(1 爱问知识人...
  3. 图片向上滚动字幕代码html,如何通过制作滚动字幕的软件实现这种片尾的向上滚动字幕效果...
  4. java 获取 网卡名称_Java获取网卡信息详解
  5. Ubuntu设置为命令行登录
  6. android自定义view(自定义数字键盘)
  7. ieee754浮点数转换工具_关于JS浮点数运算不精确的原因和解决方案
  8. linux+有趣的指令,6个有趣的Linux命令(乐趣终端) - 第二部分
  9. 【转】用Qt生成dll类库及调用方法
  10. Python数据库连接池DBUtils(基于pymysql模块连接数据库)
  11. 如何使用shell收集linux系统状态,并把结果发给远端服务器
  12. 简单介绍,基于ldirectord的高可用lvs-dr调度器
  13. mysql5.6 prompt的用法详解
  14. Java反射原理与Class类(详解)
  15. [2018.09.05 T1] Lyk Love painting
  16. 展讯8541E:NFC PM1810驱动调试
  17. 记各常见手机屏幕尺寸
  18. Acute Angle Cloud与Achain达成战略合作,共促区块链系统发展
  19. 爬取豆瓣高分电影榜实例
  20. 数据标注员需要专业系统的学习么?

热门文章

  1. 微信支付JsApi 40163错误
  2. xutils3传参(集合、对象)
  3. android二次打包教程,Android应用程序打包签名、加固、二次打包(图形/命令行)...
  4. 互联网吹牛逼指南:我们和腾讯有深度合作=公司用QQ邮箱
  5. matlab中调用histeq函数命令,根据MATLAB的histeq函数改写的运行在OpenCV下的直方图规定化源码!...
  6. jsx语法技巧vue
  7. Docear放大字体
  8. 1.SQL的基本入门
  9. 微软分段推出电子墨水白板应用程序
  10. 这款软件可以将大脑活动实时呈现在网页上