bcd编码

睡醒了起来再睡 2011-09-27 10:55:02
最近手头有一份协议 谁知道那个“左对齐”和“后面补”是什么意思?
“BCD编码,最长支持16位长度;左对齐,不足16位后面(右)补0xFF”
...全文
246 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 mayadong7349 的回复:]
汗 学的那点数模电知识忘光了 帮顶
[/Quote]

哈哈 我也是忘光了 才来问的
大道曙光 2011-09-27
  • 打赏
  • 举报
回复
汗 学的那点数模电知识忘光了 帮顶
赵4老师 2011-09-27
  • 打赏
  • 举报
回复
仅供参考
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
unsigned int iv,i;
unsigned char BCD[5];//定长10位BCD码
unsigned char sv[11];
void main() {
iv=123456789;//最大10位无符号正整数
//INT2BCD
sprintf(sv,"%010u",iv);
for (i=0;i<10;i+=2) {
BCD[i/2]=(sv[i]<<4)|(sv[i+1]&0x0F);
}
printf("BCD=%02x%02x%02x%02x%02x\n",BCD[0],BCD[1],BCD[2],BCD[3],BCD[4]);
//BCD2INT
for (i=0;i<10;i+=2) {
sv[i]='0'|(BCD[i/2]>>4);
sv[i+1]='0'|(BCD[i/2]&0x0F);
}
sscanf(sv,"%010u",&iv);
printf("iv=%010u\n",iv);
getch();
}
薛定谔之死猫 2011-09-27
  • 打赏
  • 举报
回复
软编程中很少用到bcd码,记得当年的教科书上是有个修正过程,翻书吧

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧