社区
C语言
帖子详情
现场高分求助:将反向BCD码转换为字符串的C程序
qdwfji
2006-10-29 09:56:18
急啊, 十万火急啊!
偶现在需要比对BCD码的大小,但反向BCD码显然不能直接比较,如
起始BCD:214365, 终止BCD:214387。比较某BCD码是否处于二者之间,如214375,或214395。
现在急需先将BCD码转换为字符串,123456,123478,123457,123459后,再进行比较
...全文
437
9
打赏
收藏
现场高分求助:将反向BCD码转换为字符串的C程序
急啊, 十万火急啊! 偶现在需要比对BCD码的大小,但反向BCD码显然不能直接比较,如 起始BCD:214365, 终止BCD:214387。比较某BCD码是否处于二者之间,如214375,或214395。 现在急需先将BCD码转换为字符串,123456,123478,123457,123459后,再进行比较
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gxh9314
2006-10-29
打赏
举报
回复
不明白楼主的意思
飞哥
2006-10-29
打赏
举报
回复
一头雾水~
jixingzhong
2006-10-29
打赏
举报
回复
我不明白为什么 要这样转换数据后比较 ~~
楼主能解释一下 什么是 反向BCD码 么?
BCD码是可以理解,
这个反向BCD码 是什么概念?
它们比较是根据什么规则呢?
Jokar
2006-10-29
打赏
举报
回复
你的BCD码存储为什么数据型态的
yingge
2006-10-29
打赏
举报
回复
晕,自己+一句不就可以了么?
char *inv_BCD_to_str(char *dst,void *BCDcode,size_t size){
char *ret=dst;
int i;
for(i=0;i<size;i++){
*dst++=((int)(*(char *)BCDcode)&0xf)+'0';
if(((int)(*(char *)BCDcode)&0xf0)==0xf0)
continue;
*dst++=((int)(*(char *)BCDcode)>>4)+'0';
(char *)BCDcode++;
}
*dst='\0';
return ret;
}
qdwfji
2006-10-29
打赏
举报
回复
多谢楼上兄弟
不过可能是我没有讲所有反向BCD码的描述说清楚——
反向BCD码如果是奇数位,则补F填充最后高半字节,如
字符串12345,其反向BCD码就要表示成2143F5
0010 0001 0100 0011 1111 0101
-- -- -- -- -- --
2 1 4 3 F 5
yingge
2006-10-29
打赏
举报
回复
#include <stdio.h>
char *inv_BCD_to_str(char *dst,void *BCDcode,size_t size){
char *ret=dst;
int i;
for(i=0;i<size;i++){
*dst++=((int)(*(char *)BCDcode)&0xf)+'0';
*dst++=((int)(*(char *)BCDcode)>>4)+'0';
(char *)BCDcode++;
}
*dst='\0';
return ret;
}
int main(){
char s[]={0x21,0x43,0x65,};
char *t=(char *)malloc(sizeof(s)*2+1);
printf("%s\n",inv_BCD_to_str(t,s,sizeof(s)));
free(t);
return 0;
}
qdwfji
2006-10-29
打赏
举报
回复
不好意思,是我没有解释清楚。答复如下:
1. 反向BCD码就是每byte的高4位、低4位反序,比如字符串格式123456存储成反向BCD码就是
0010 0001 0100 0011 0110 0101
-- -- -- -- -- --
2 1 4 3 6 5
2. 之所以要先将反向BCD码转换为字符串,是反向BCD码自身无法比较。比如
反向BCD码214387(就是字符串123478)要比反向BCD码214375(就是字符串123457)和214395(就是字符串123459)都大,但直接比对BCD码显然无法完成
有说的不清楚的大家见谅,我继续解释
lsd1025
2006-10-29
打赏
举报
回复
不明白
统考计算机
单选题1、计算机操作系统是一种______。A.系统软件B.应用软件C.工具软件D.调试软件答案:A2、冯·诺依曼结构形成了计算机的______。A.发展结构B.基本结构C.逻辑结构新D.数据结构答案:B3、计算机中,完成
程序
指令指定的基于二进制数的算术运算或逻辑运算的部分是______。A.内存储器B.输入输出设备C.外存储器D.运算器答案:D4、计算机内部用于处理数据和指令的编码是______。A.十进制码B.二进制码C.ASCII码D.汉字编码答案:B5、计算机具有很高的计算精度的根本原因是_____
计算机组成原理
计算机系统有硬件和软件两部分组成,软件又可分为系统软件和应用软件 硬件:看得见摸得着的电子元器件,如主机,外部设备 软件:人们事先编制的具有特殊功能的
程序
程序
通常存放在计算机主存储器或者辅存里 直接执行机器语言的
程序
:实际机器M(机器语言机器) 符号式的
程序
设计语言:汇编语言(汇编语言机器称为虚拟机器,实际不存在,使人们感受到存在的具有翻译功能的机器,先将汇编语言翻译成机器语言,
BAT机器学习面试1000题系列(第150~279题)
150、在感知机中(Perceptron)的任务顺序是什么?深度学习 DL基础 易 1 随机初始化感知机的权重 2 去到数据集的下一批(batch) 3 如果预测值和输出不一致,则调整权重 4 对一个输入样本,计算输出值 A. 1, 2, 3, 4 B. 4, 3, 2, 1 C. 3, 1, 2, 4 D. 1, 4, 3, 2 答案:(D)
Android 开发从入门到实战
本节介绍Android开发的历史沿革,包括Android的发展历程和Android Studio的发展历程两个方面。数据定义语言全称Data Definition Language,简称DDL,它描述了怎样变更数据实体的框架结构。就SQLite而言,DDL语言主要包括3种操作:创建表格、删除表格、修改表结构,分别说明如下。创建表格表格的创建动作由create命令完成,格式为“CREATE TABLE IF NOT EXISTS 表格名称(以逗号分隔的各字段定义);
BAT机器学习面试1000题系列
几点声明: 1、本文的内容全部来源于七月在线发布的BAT机器学习面试1000题系列; 2、文章中带斜体的文字代表是本人自己增加的内容,如有错误还请批评指正; 3、原文中有部分链接已经失效,故而本人重新加上了新的链接,如有不当,还请指正。(也已用斜体标出) 4、部分答案由于完全是摘抄自其它的博客,所以本人就只贴出答案链接,这样既可以节省版面,也可以使排版更加美观。点击对应的问题即可跳转。
C语言
69,371
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章