社区
C#
帖子详情
串口通信中日期时间的表示为什么用BCD吗?
qq_33603542
2017-02-28 08:44:44
如题,用16进制不行吗?
自己也想过如果用一个16进制表示最大是255,但是我们一般年表示是00-99,BCD码的99是0X99,16进制的99是0X63,显然BCD码的显示更直接一些,是不是这个道理呢?
还有就是如果我们要表示1999年,显然16进制会很麻烦的,要两个16进制数,而且还要计算,但是用BCD码表示就方便了一个BCD码表示一位,四个BCD码就可以,我现在就可以敲出来,0X19(高位)0x99(低位),是不是这个道理呢?
求解,谢谢了
...全文
721
3
打赏
收藏
串口通信中日期时间的表示为什么用BCD吗?
如题,用16进制不行吗? 自己也想过如果用一个16进制表示最大是255,但是我们一般年表示是00-99,BCD码的99是0X99,16进制的99是0X63,显然BCD码的显示更直接一些,是不是这个道理呢? 还有就是如果我们要表示1999年,显然16进制会很麻烦的,要两个16进制数,而且还要计算,但是用BCD码表示就方便了一个BCD码表示一位,四个BCD码就可以,我现在就可以敲出来,0X19(高位)0x99(低位),是不是这个道理呢? 求解,谢谢了
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xuzuning
2017-02-28
打赏
举报
回复
那是你们用的通讯协议规定的,没有为什么 在不合理也得执行! 用 BCD 码表示数值有简单直观的优势,单片机中用的很多
Forty2
2017-02-28
打赏
举报
回复
当然可以用BCD编码,只要发送方和接受方统一协议就可以了。 BCD的一个优点就是你说的日期上‘显示更直接一些‘。 不过,16进制一样是很好的编码,很通用,而且所有的程序员都能理解。
by_封爱
版主
2017-02-28
打赏
举报
回复
串口通讯 只是 PC跟串口 之间一根线 用byte[]传输而已. 所以哪来什么的日期? 比如我的设备接收到1跟2 设备返回3. 那么何来你所谓的"BCD"? 所以 这都跟串口通讯开发者设定的"协议"有关系.. 比如你是开发者. 那么你想怎么设计 就怎么设计. 比如 串口输出 4个字节(一个int) 那么完全可以表示20170303这个数字.. 或者人家输出 20 17 03 03 这4个字节 前2个组合成年 然后是月 然后是日 也可以. 或者 把字符串"20170303"当作字符串的方式 转换成年月日 也可以.. 所以最终这种东西 就是看"设计者"如何来设计,并没有硬性的规定说 是什么格式.具体你还得看硬件厂商提供的"协议"
日期
时间
转换成ASC码或者
BCD
码
日期
时间
转换成ASC码或者
BCD
码,做串口调试数据。
STM32F103C8T6--
时间
(内部低速时钟).zip_STM32f103基于内部低速时钟的
日期
_f103c_f103c8t
STM32f103基于内部低速时钟的串口发送
时间
日期
STM32f103基于内部低速时钟的
日期
STM32L152 RTC 读取
时间
和
日期
STM32L152 RTC 读取
时间
和
日期
,用串口将
时间
发送出来,测试了年月日进位都正常。
时间
显示(单片机
中
)
单片机
中
对
时间
的显示,主函数可更改,也可对年月显示
实时时钟DS1302
实时时钟DS1302,的一个很好的文档 很详细
C#
111,094
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章