社区
C语言
帖子详情
现场高分求助:将反向BCD码转换为字符串的C程序
qdwfji
2006-10-29 09:56:18
急啊, 十万火急啊!
偶现在需要比对BCD码的大小,但反向BCD码显然不能直接比较,如
起始BCD:214365, 终止BCD:214387。比较某BCD码是否处于二者之间,如214375,或214395。
现在急需先将BCD码转换为字符串,123456,123478,123457,123459后,再进行比较
...全文
544
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
打赏
举报
回复
不明白
电子工程必备:核心器件中英文对照表与实战应用指南
本文系统梳理电子工程中高频出现的核心器件与技术术语中英文对照表,涵盖ADC、PWM、MOSFET、IGBT、SPI、I2C、UART、LDO、ESD等关键缩写,按功能领域与字母顺序双重索引。重点解析其物理意义、选型参数(如ADC分辨率/采样率、MOSFET Rds(on)/Qg)、设计要点(参考电压稳定性、地线分割)及典型故障排查(通信失联、电源发热、NTC读数不稳),强调上下文多义性识别与工程实践关联。
【信息科学与工程学】计算机科学与自动化——第三十五篇 调度理论和调度算法01——资源调度算法
本文系统阐述调度理论的三层知识框架:问题定义与建模、核心求解方法论、应用前沿;重点解析主动I/O设备任务设计六原则及并发单元识别;全面梳理覆盖基础至前沿的资源调度算法谱系,包括存储、网络(含5G/6G、MAC/路由/传输层)、硬件(ASIC/FPGA/NPU/DPU)、虚拟化与云、边缘/物联网、AI/量子/区块链等场景,并强调多目标优化(性能、能效、成本、公平性、可靠性)在智能调度中的核心地位。
【信息科学与工程学】【数据科学】数据科学领域 第六篇 算法设计 01
本文构建了覆盖算法设计全过程的系统性理论与工程框架,包含算法设计思路、底层原理、复杂度分析、正确性证明、优化技术、并行设计及工程实现等核心维度;重点阐述调度算法在编译器领域的应用,如指令调度、循环调度、GPU/FPGA调度等,并融合数学建模方法论,强调建模-算法-验证-部署闭环流程。
【AI大模型应用开发】【项目实战】10.基于BERT+PET方式实现新零售行业决策评价系统
本文基于BERT与PET(Pattern-Exploiting Training)方法,构建面向新零售电商用户评论的小样本文本分类系统。重点介绍PET的核心组件PVP(模板+标签词映射)、标准三阶段训练流程(微调→软标签生成→监督训练)、iPET迭代优化机制,以及数据预处理(prompt.txt/verbalizer.txt配置)、模型搭建(verbalizer.py/mlm_loss等工具函数)和评估指标(Precision/Recall/F1)。项目适配少标注场景,突出参数高效微调与可解释性。
基于Swin Transformer与点提示引导的MRI全心脏交互式分割系统
本系统提出了一套面向MRI全心脏分割任务的端到端深度学习解决方案,其核心创新在于将Swin Transformer作为编码器骨干网络,充分挖掘心脏MRI图像中的全局上下文信息与局部细节特征,同时引入4通道输入机制,在传统RGB三通道图像基础上额外拼接一个点提示编码通道,支持用户通过鼠标交互在图像上自由标注前景(心脏区域)与背景点,从而将先验空间信息显式地融入网络前向传播过程,实现基于稀疏标注引导的精准分割。在解码阶段,系统采用U型对称结构,通过逐步上采样与跳跃连接逐级恢复特征图分辨率,最终输出二值分割掩膜(前景/背景),有效区分心脏区域与其他组织。训练过程中,系统选用交叉熵损失函数,配合AdamW优化器与余弦退火学习率调度策略,确保模型在训练集和验证集上稳定收敛,并在每个epoch结束后自动计算全局像素准确率、平均交并比(mIoU)、平均Dice系数、平均精确率、平均召回率及平均F1分数等多项评估指标,全方位监控模型性能。系统内置了完整的训练日志保存、损失曲线与性能曲线绘制、学习率衰减可视化等功能模块,便于用户直观分析训练过程并调优超参数。在推理应用层面,系统封装了基于Tkinter框架的图形化交互界面,用户可上传任意MRI切片图像,通过鼠标左键/右键分别添加前景/背景点,点击“执行分割”按钮后即可实时生成叠加了红色半透明掩膜的分割结果图像,支持点集的增删与重置操作,交互响应灵敏,操作逻辑直观清晰。整体而言,本系统不仅实现了从多模态数据加载、交互式标注编码、基于Transformer的分割建模到图形化推理部署的全链路覆盖,更在算法层面通过点提示引导机制与Swin Transformer结构的高效结合,显著降低了对大规模标注数据的依赖,同时提升了模型对心脏边界模糊、形态变异及邻近组织干扰的鲁棒性,为心血管疾病的计算机辅助诊断、术前规划及定量分析提供了一种兼具精度与灵活性的智能
C语言
70,039
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章