打印

300多个字节,有没有什么方法可以解决?

[复制链接]
536|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lium|  楼主 | 2022-1-1 13:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
30, AN

qudong_huancun[3]=x/1000;
         x=x%1000;
         qudong_huancun[2]=x/100;
         x=x%100;
         qudong_huancun[1]=x/10;
         qudong_huancun[0]=x%10;
这是我用的两字节16进制转10进制的程序,但现在用到long型的

        n_1=98765432;
          i[6]=n_1/1000000;
          i[5]=n_1/10000;
          i[4]=n_1/100;
我就这样的程序就要用到300多个字节,有没有什么方法可以解决??
300多字节太大了啊!!

使用特权

评论回复
沙发
renyaq| | 2022-1-1 13:20 | 只看该作者
你可以用汇编改小啊。。。不过也小不了多少。。。

使用特权

评论回复
板凳
dengdc| | 2022-1-1 13:23 | 只看该作者

用这个函数看看

uint x;             // 要转换的16进制数
uchar x_sbuf[4];    //转换后数据缓冲区 x_sbuf[3]为高位
uchar i;
for (i=0; i<4; i++)
{x_sbuf=x%10;
x=x/10;
}

使用特权

评论回复
地板
wuhany| | 2022-1-1 13:25 | 只看该作者
用sprintf最简单
#define ch_Buff_Len 20
uchar ch_Buff[ch_Buff_Len];
sprintf(ch_Buff,"%u",ulong_i);

使用特权

评论回复
5
yszong| | 2022-1-1 13:27 | 只看该作者
库函数虽然使用简单,但是它考虑的格式多样,因此代码会增加很多。

使用特权

评论回复
6
dingy| | 2022-1-1 13:35 | 只看该作者
建议自行用除法转减法的方式处理,能够把代码尺寸控制得较小,同时又不损失程序的通用性。

使用特权

评论回复
7
jiajs| | 2022-1-1 13:37 | 只看该作者
缺点是执行时间与需转换的ulong数值相关,因此不确定。

使用特权

评论回复
8
yszong| | 2022-1-1 13:40 | 只看该作者
用汇编可更快/更小

使用特权

评论回复
9
chuxh| | 2022-1-1 13:42 | 只看该作者
可以优化一下程序,应该可以好点

使用特权

评论回复
10
lium|  楼主 | 2022-1-1 13:44 | 只看该作者
唉,还是没有什么结果,算了,多谢大家啦

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

915

主题

9578

帖子

3

粉丝