免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3878 | 回复: 11
打印 上一主题 下一主题

一个日期的算法问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-10-30 16:41 |只看该作者 |倒序浏览
从COM口得到程序返回的16进制及对应的10进制数据,有部分不知道怎么算出来的,请大家帮看一下,谢谢!
研究了一下,有一些算出来了,就是日期部分和时间部分没有算出来,想得头都有点晕了.
D9 :  7D9 = 2009
A7 :     A   =  10

  经过混合的           对应的10进制日期
16制的日期               
D9 A7 01 00          0910010000                                2009-10-01 00:00
D9 A7 01 04          0910010001                                2009-10-01 00:01
D9 A7 01 08          0910010002
D9 A7 01 0C         0910010003
D9 A7 01 10          0910010004
D9 A7 01 14          0910010005
D9 A7 01 C8         0910010050
D9 A7 01 EC         0910010059                                   2009-10-01 00:59
D9 A7 21 00          0910010100                                  2009-10-01 01:00
D9 A7 21 04          0910010101
D9 A7 61 ED         0910011159  
D9 A7 81 01          0910011200
D9 A7 E1 EE          0910012359                                  2009-10-01 23:59
D9 A7 02 00          0910020000                                  2009-10-02 00:00
D9 A7 02 04          0910020001
D9 A7 22 00          0910020100
D9 A7 22 04          0910020101

D9 A7 C1 A1        0910011440  
D9 A7 CA A1        0910101440
D9 A7 CB A1        0910111440

D9 A7 1E 58     0910300022
D9 A7 3E 5C     0910300123
D9 A7 7E 60     0910300324
D9 A7 BE 64     0910300525
D9 A7 DE 68     0910300626
D9 A7 FE 68     0910300726
D9 A7 1E 6D    0910300827
D9 A7 BE 01     0910301300
D9 A7 BE 05     0910301301
D9 A7 BE 09      0910301302
D9 A7 BE 0D     0910301303
D9 A7 BE 15      0910301305
D9 A7 BE 29       0910301310
D9 A7 BE 51      0910301320
D9 A7 BE 79      0910301330
D9 A7 BE A1      0910301340
D9 A7 BE C9      0910301350
D9 A7 BE ED      0910301359  
D9 A7 DE 01     0910301400
D9 A7 DE 05     0910301401
D9 A7 DE 11      0910301404

[ 本帖最后由 flyingnn 于 2009-10-30 16:43 编辑 ]

论坛徽章:
1
技术图书徽章
日期:2014-03-06 15:29:50
2 [报告]
发表于 2009-10-30 17:23 |只看该作者
你这个格式容易误导,大小端换一下就清楚了
00       01           A7 D9
分   小时/日期      月/年

论坛徽章:
0
3 [报告]
发表于 2009-10-30 17:30 |只看该作者
原帖由 qshllxfx 于 2009-10-30 17:23 发表
你这个格式容易误导,大小端换一下就清楚了
00       01           A7 D9
分   小时/日期      月/年


看不明白,能验证不同时间日期的几行看看吗?谢谢!

论坛徽章:
0
4 [报告]
发表于 2009-10-30 17:42 |只看该作者
日期中的日,是第三个字节的第0位到第4为表示的。

论坛徽章:
0
5 [报告]
发表于 2009-10-30 17:42 |只看该作者
原帖由 qshllxfx 于 2009-10-30 17:23 发表
你这个格式容易误导,大小端换一下就清楚了
00       01           A7 D9
分   小时/日期      月/年

不是那么简单的。

论坛徽章:
1
技术图书徽章
日期:2014-03-06 15:29:50
6 [报告]
发表于 2009-10-30 17:45 |只看该作者
原帖由 flyingnn 于 2009-10-30 17:30 发表


看不明白,能验证不同时间日期的几行看看吗?谢谢!


分占8bit,步进是4,即00是0分,04是1分
小时占4bit,步进是2,即0是0时,2是1时,超出E之后,进位到分的bit0上

论坛徽章:
0
7 [报告]
发表于 2009-10-30 17:56 |只看该作者
原帖由 qshllxfx 于 2009-10-30 17:45 发表


分占8bit,步进是4,即00是0分,04是1分
小时占4bit,步进是2,即0是0时,2是1时,超出E之后,进位到分的bit0上



Yes。

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
8 [报告]
发表于 2009-10-31 07:48 |只看该作者

论坛徽章:
0
9 [报告]
发表于 2009-10-31 10:32 |只看该作者
原帖由 qshllxfx 于 2009-10-30 17:45 发表


分占8bit,步进是4,即00是0分,04是1分
小时占4bit,步进是2,即0是0时,2是1时,超出E之后,进位到分的bit0上


步进,进位,这些概念不是很了解,具体怎么用也没有试过,不过也有一些启示吧,得到的结果就是这样:

D9 A7 1E 58     0910300022

581E = 10110   00000     11110
              分: 22    时: 0      日: 30

D9 A7 BE 64     0910300525

64BE = 11001    00101    11110
             分: 25    时: 5      日: 30

反过来:

D9 A7 DE 11      0910301404

30 = 11110
14 = 01110
04 = 00100
组合起来:
00100   01110   11110 = 11DE

[ 本帖最后由 flyingnn 于 2009-10-31 10:37 编辑 ]

论坛徽章:
0
10 [报告]
发表于 2009-10-31 10:41 |只看该作者
非常感谢 克拉玛依 和 qshllxfx 提点,对数据的编码和较验没什么了解,有什么好的书推荐吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP