/*
* 压缩bcd码转成字符串
*/
/**************************************************************/
/*如果要对左靠齐的压缩bcd码转换为字符串,则调用left_bcd_to_asc函数*/
char str[100];
int str_len = strlen(str1);
int bcd_len = (str_len+1)/2;
char *bcd = (char *)malloc(bcd_len);
memset(bcd,0,bcd_len);
memset(str,0,100);
left_bcd_to_asc(str,bcd,bcd_len);//得到的str的字符串即为需要字符串
/**************************************************************/

/**************************************************************/
/*如果要对左靠齐的压缩bcd码转换为字符串,则调用right_bcd_to_asc函数*/
char str[100];
int str_len = strlen(str1);
int bcd_len = (str_len+1)/2;
char *bcd = (char *)malloc(bcd_len);
memset(bcd,0,bcd_len);
memset(str,0,100);
right_bcd_to_asc(str,bcd,bcd_len);//得到的str的字符串即为需要字符串
/**************************************************************/

int bcd_to_asc(char *dest,const char *src,int src_len)
{
unsigned char temp;
char *t = dest;
while(src_len--)
{
*t |= ((*src&0xf0)>>4);
*t++ |= 0x30;
*t |= (*src&0xf);
*t++ |= 0x30;
src++;
}
return 0;
}

int left_bcd_to_asc(char *dest,const char * src,int bcd_len)
//参数dest为需要进行转换的压缩bcd码的字符串,参数src为申请的存放得到的转换的字符串,参数bcd_len为dest的长度即(strlen(src)+1)/2;
{
bcd_to_asc(dest,src,src_len);
dest[src_len*2 -1] = '\0';

return 0;
}

int right_bcd_to_asc(char *dest,const char * src,int bcd_len)
//参数dest为需要进行转换的压缩bcd码的字符串,参数src为申请的存放得到的转换的字符串,参数bcd_len为dest的长度即(strlen(src)+1)/2;
{
bcd_to_asc(dest,src,src_len);

memmove(dest,dest+1,src_len*2-1);
dest[src_len*2-1] = '\0';
return 0;
}

/***以上总结整理和说明参考了http://blog.csdn.net/nocodelife/article/details/8233082****/

压缩bcd码转成字符串相关推荐

  1. 压缩BCD码拆成两个ACSII码存入指定单元【汇编语言】

    将片内RAM的20H单元中的压缩BCD码拆成两个ACSII码存入21H.22H单元.低4位存在21H单元,高4位存在22H单元. 思路: 压缩BCD码和非压缩BCD码的区别 一个BCD码占4位,而一个 ...

  2. 字符串转成压缩bcd码

    /* * 字符串转成压缩bcd码 */ /**************************************************************/ /*如果要对字符串转换为左靠齐 ...

  3. C语言实现ASCII字符、压缩BCD码值与BIN码(16进制)互转 - (已编译,亲试可用)

    目录 1.将压缩BCD码转为BIN码 2.将压缩BCD码数组转为BIN码数组 3.将BIN码转为压缩BCD码 4.将BIN码数组转为压缩BCD码数组 5.将ASCII码转为BIN码 6.将ASCII码 ...

  4. c语言 ascii 和 压缩bcd 码之间的相互转换

    转载请标注出处:(版权所有) 本文将从五点详细介绍bcd码和ascii 之间的关系,如下所示: 一.简介 二.用途 三.特点 四.代码原理 五.代码 1.ascii 转压缩bcd码   2. 压缩bc ...

  5. [计组]压缩BCD码指二进制编码的十进制

    压缩BCD码指二进制编码的十进制 压缩BCD码指一个字节8位存储2位BCD码.比如32用8421BCD码表示如下:非压缩BCD码表示:00000011 00000010:压缩BCD码表示:0011 0 ...

  6. C51单片机的压缩BCD码相加程序

    设被加数 NA 及加数 NB 均为三字节压缩BCD码,分别存放于内部 RAM 的 20H~22H 及 30H~32H 单元中,低位在前,高位在后. 要求计算两数之和,并将和存放到内部 RAM 中 3F ...

  7. 汇编--子程序设计(1)--非压缩bcd码和十进制的转换

    输入四位十六进制数,显示对应的十进制数(还有位对应的值,以T作为结束符). ;PROGRAM GOES HERE;13:34 2023/4/15-------17:38 2023/4/16----17 ...

  8. BCD码和压缩BCD码

    BCD码    BCD码,全称二进制编码的十进制.用4位二进制数来表示1位十进制数中的0-9这10个数码.    BCD码可分为有权码和无权码两类: 有权BCD码有8421码.2421码.5421码, ...

  9. 汇编_压缩BCD码和非压缩BCD码

    BCD码是表示十进制数的,非压缩BCD码是用8位表示的,其实只用低4位,高4位全为0. 例如,十进制数36,用非压缩BCD码表示为:0000 0011 0000 0110 ,这是两个字节. 压缩BCD ...

最新文章

  1. 360°透视:云原生架构及设计原则
  2. html css 磁贴,使用JS配合CSS实现Windows Phone中的磁贴效果
  3. C++(STL):14--- forward_list比list更高效的容器
  4. python与冒泡排序
  5. 21天Jmeter打卡Day10线程用户之setUp和tearDown
  6. 程序人生:做技术,切不可沉湎于技术
  7. 使用nsenter进入Docker容器
  8. Windows11下安装MongoDB
  9. 安卓软件汉化教程附带汉化工具Android Res Edit V1.5
  10. 怎样看开源代码版权_版权声明在开源代码中泛滥成灾
  11. Anaconda 更换浏览器要求输入token
  12. CentOS源码安装PostgreSQL
  13. 修改ARM开发板IP地址
  14. 一个癌症病人的美国求医经历:活人死人如果都得不到尊重,病人也很难被尊重
  15. PGSQL学习——触发器
  16. STM32 USB HID Mouse And Keyboard (guide)
  17. 蚂蚁开放平台开发者专场(上海站)欢迎参加!
  18. koreader如何选择kindle的版本
  19. 如何把aac格式的音频转换成mp3格式的
  20. java实现倒计时闹钟_倒计时闹钟软件下载-倒计时闹钟app下载v1.2.4-西西软件下载...

热门文章

  1. ASPCMS幻灯片调用和制作
  2. element-table表格内换行
  3. 李宏毅机器学习介绍-2022.07.11
  4. obs多推流地址_一文搞懂:抖音obs直播怎么操作,抖音直播推流地址如何获取!...
  5. linux ctime 格式化,atime,mtime,ctime说明
  6. AI大模型相当于“超级大脑”,正成为人工智能“新高地”
  7. WINS服务器的作用
  8. Docker系列之五:Volume 卷的使用——以Redis为例
  9. 蓝桥杯 15决赛 A2 四阶幻方(剪枝)
  10. android 朋友圈功能,Android仿微信朋友圈全文收起功能示例(附源码)