打印

冷漠兄还要培训?咱想的**不离十。

[复制链接]
4457|34
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
冷漠|  楼主 | 2009-2-20 21:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
好像能想到的人不多,岂不正好以此看看竞新斑竹的各路竞争对手思路敏捷程度?CRC很简单的问题,关键是这里要求各位用手(纸和笔)计算。(当计算机没有出现的时候,一些CRC问题如何推证?)

一个CRC问题:
1、生成多项式为: CRC-16,即X16+X15+X2+1
2、报文多项式为: X7+X3+X2

求CRC余数。不用机器,完全用手算,列出竖式,有什么绝技没有?

相关帖子

沙发
xwj| | 2009-2-20 22:59 | 只看该作者

LZ,去搜索论坛旧贴

大家早就讨论得太多了,手算真的是非常简单的事情

使用特权

评论回复
板凳
冷漠|  楼主 | 2009-2-21 10:55 | 只看该作者

楼上没看清题目

要求完全用手算,你将如何计算?

我假定报文多项式为:X32+X7+X3+X2 (100000000...10001100)

您用“非常简单的事情”进行手算,要不要花费半个小时?有一点对位不清,又要重新来过,恐怕一个小时也得不到确定的正确答案。

各位高手有没有一种简化方法?既能把32位的报文在人类耐心忍耐度下计算完,又能保证12分的肯定,保证无错!


使用特权

评论回复
地板
古道热肠| | 2009-2-21 11:04 | 只看该作者

为什么要手算呢?

使用特权

评论回复
5
冷漠|  楼主 | 2009-2-21 11:24 | 只看该作者

很简单。

因为有些CRC计算程序,连编程员自己都不敢肯定是否正确,A、B两个编程员的CRC校验程序对同一报文得出了2个不同余数结果!谁是正确的?

唯一对照衡量的标准答案,只能是用纸和笔手算出来的,因为就像普通除法,只有一个商和余数是公认正确的、可以对照的。

HOTPOWER有一贴,说他发现厂家的某CRC计算错了。那么当然是厂家的程序所用的公式错了,这就麻烦了,到底谁对?

只好用白纸黑笔来计算出答案,对照证明一下,是厂家对,还是HOT对。

无论谁自己编写的CRC校验公式,都没有把握是否正确。和谁对照?当然是自己在纸上先算一下,然后拿程序计算出的结果来比较,然后心里才有底。才敢拿出来用吧。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
xuyiyi + 1
6
yewuyi| | 2009-2-21 21:23 | 只看该作者

关注。。。

呵呵,不过得先加件棉袄,真的很冷。。。

使用特权

评论回复
7
学生D| | 2009-2-21 22:15 | 只看该作者

冷漠兄还要培训?咱想的**不离十。

C366F9550000/18005=8247A3F7......余AC2B

用时大概10分钟。

4位4位计算就行了。

例如:80/18=F 余 8

冷漠兄学来的还有更快的?光凭纸笔咱可转不过来。2分钟佩服了。

使用特权

评论回复
8
guantingwei| | 2009-2-22 01:44 | 只看该作者

手算啊?

使用特权

评论回复
9
hotpower| | 2009-2-22 02:43 | 只看该作者

俺算不了~~~

使用特权

评论回复
10
NE5532| | 2009-2-22 10:01 | 只看该作者

建议加强笔试难度

用晶体管搭一个51才能证明能力,在单片机没有出现之前,要实现自动控制,是不是也用晶体管搭呢?

使用特权

评论回复
11
冷漠|  楼主 | 2009-2-22 14:11 | 只看该作者

同意LS。

现代技术再也产生不了爱迪生、诺贝尔、.....等等那样的对任何事情都能感到好奇的实验发明家。

计算机出现之前,自控系统理论已非常成熟了,30年前一个自控系统,——例如舰船、导弹上的陀螺仪,是用运算放大器电路搭建组成的,那大概只能算是小规模集成电路时代。(也许还没有。)再往前,追溯到二战时期的航母,导弹,那时连运放都没出来呢,那里面的自控系统用什么电路?怎么比中国现在计算机构成的自控系统还厉害?过了60年,现在的工程师与那时反而差远了。——人类的智力在退化?

再往前,布尔发明的布尔代数,据说布尔以前2000年就提出来了,经过了不知多少代人的思索,两千年后,布尔才出现了,那时没有晶体管怎么算A||B,A&&B?谁都知道是用继电器。

刚参加工作时,到上海参加了一个鉴定会,一个由几十个继电器组成的控制装置,数不清的导线,评审科技进步2等奖。
   我当时提了一个问题(不发言不好,就瞎说吧):“这个装置的说明书上,为什么没有此装置的逻辑表达式?(布尔逻辑表达式)。”呵呵,它是老工程师借助经验一点一点“数”出来的,谁知道什么“逻辑表达式”,但是教授知道,学校里教的。老师说“这个问题提得好,几十个继电器,实际上用逻辑式一化简,十几个继电器就够了”。

呵呵,卡诺图画一画。马上就实现化简了。不知现在的单片机控制专业还学不学布尔代数运算,和卡诺图。

使用特权

评论回复
12
sszhulei| | 2009-2-22 15:16 | 只看该作者

呵呵,12楼的可以看看数电的书

里面还是有的,不过学单片机,都有模电数电的知识,通讯原理课上,不都是手算crc,不过我都给老师了,很多都是了解,以前学过,用到的时候,再查资料

使用特权

评论回复
13
学生D| | 2009-2-22 16:10 | 只看该作者

楼上差矣。多项式除法谁都会,不会的是16进制除法。

你说的是标准教材上教的按位CRC计算方法。照教材上方法,恐怕谁都没有耐心完成
110000110110011011111001010101010000000000000000/X16+X15+X2+1


全世界CRC教材内容,找不到一本教人4位/8位同时计算的!

你可以查一下图书馆、互联网、任何国内外教材,看看哪本讲过“CRC快速手算法”,
   80/18=F 余 8是怎么算的?

再出一道:78H/26H=3 余12H  

 我用12秒。(差不多等于手写速度)按照教材上教的方法计算,一分钟也算不完。位数多了还容易对位错。

HOT给的那个下载的MODBUS校验码CRC计算器挺好玩的,用手算验证了一下,十分正确。——那公式是怎么推导出来的?用(16进制手算)竖式才看出来的。

呵呵,咱自创的。欺负洋人想不到。——谁找到书说咱山寨咱的脸可没地方放了。

(有点怕冷漠兄还有更厉害的?)

使用特权

评论回复
14
冷漠|  楼主 | 2009-2-22 19:41 | 只看该作者

不错,

俺想了一晚上,也没想出80/18的4位同时算法。除非8楼专门**训练过,熟能生巧之嫌。

俺培训班学的方法虽然更快,但是都是书上有的东西,而且又是学的国外的教材。还要借助查表。例如:

C3,66,F9,55,每个字节都有自己的CRC余数,这些余数构成一个256项的表。前述报文只要利用这个表相应数据按照一定规律异或加4次就行了。只要一看书就明白了。没看书以前俺当然想不到。中国那么多教授也没论证出来这么简单的逻辑关系。

虽然巧妙,还是敬佩8楼,,(网上搜过了)书上没有的,物以稀为贵。反正咱培训班没讲过类似方法,要是咱进班前有这手本事,也能上讲台给老师露一手。不是咱中国人什么都要跟外国人后面学,是不是,哈...

使用特权

评论回复
15
HWM| | 2009-2-22 20:32 | 只看该作者

不明白,人们都说“取长补短”,为何要反其道而行之呢?

使用特权

评论回复
16
冷漠|  楼主 | 2009-2-23 09:45 | 只看该作者

永远对未知保持好奇心。

嚼别人嚼过的馍没味。

终于对8楼的方法有点想通了,果然创意,好玩。

没有3天的好奇心,可能真的放弃了。

如果按照“取长补短”的原则,中国就永远不用自己研究什么了。实际上我们单位现在立的课题或者在研项目,都是国外40年代就有了的。都是在“嚼别人嚼过的馍”。

8楼能否留个信箱?有问题求教。

使用特权

评论回复
17
学生D| | 2009-2-23 22:38 | 只看该作者

终于找到了冷漠兄说的公式。

借助查表,确实简洁,快。

又是外国资料上找到的,别人怎么想到的?咱怎么不行?

使用特权

评论回复
18
HotC51| | 2009-2-23 22:58 | 只看该作者

请“阶级敌人”找数学教授看看俺的CRC可逆算法对否~~~

俺找了几个都是---不明白~~~
相关链接:http://www.hotpage.net.cn/hotpower/HotPower三角及冗余校验密码技术.htm

使用特权

评论回复
19
zwjgg| | 2009-2-24 09:47 | 只看该作者

都是强人啊。

以前也有这份好奇心,但是现在被生活所迫……

使用特权

评论回复
20
学生D| | 2009-2-24 10:43 | 只看该作者

马上看出HOT的程序有疑问。

用HOT老师的程序,计算一个简单的单字节31H的CRC校验值:
低位先发送,手算反序为8CH:

8C0000/18005=F7  余832B  或者反序D4C1 (都是对的)

上式绝对正确的,用HOT老师的程序计算的答案莫名其妙。

所以,引用2楼LZ的一段话:

“因为有些CRC计算程序,连编程员自己都不敢肯定是否正确,A、B两个编程员的CRC校验程序对同一报文得出了2个不同余数结果!谁是正确的?

唯一对照衡量的标准答案,只能是用纸和笔手算出来的,因为就像普通除法,只有一个商和余数是公认正确的、可以对照的。

HOTPOWER有一贴,说他发现厂家的某CRC计算错了。那么当然是厂家的程序所用的公式错了,这就麻烦了,到底谁对?

只好用白纸黑笔来计算出答案,对照证明一下,是厂家对,还是HOT对。”


呵呵,该不是HOT老师自己的程序算法错了?下结论为时过早。






使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

921

帖子

4

粉丝