aruino代码转java_如何在Arduino上将int转换为字符串?

这是用于将int(带符号的16位整数)转换为字符串的速度优化解决方案 .

这种实现避免了使用除法,因为用于Arduino的8位AVR没有硬件DIV指令,编译器将除法转换为耗时的重复减法 . 因此,最快的解决方案是使用条件分支来构建字符串 .

从RAM开始准备的固定7字节缓冲区,以避免动态分配 . 由于它只有7个字节,因此固定RAM使用的成本被认为是最低的 . 为了帮助编译器,我们将register修饰符添加到变量声明中以加速执行 .

char _int2str[7];

char* int2str( register int i ) {

register unsigned char L = 1;

register char c;

register boolean m = false;

register char b; // lower-byte of i

// negative

if ( i < 0 ) {

_int2str[ 0 ] = '-';

i = -i;

}

else L = 0;

// ten-thousands

if( i > 9999 ) {

c = i < 20000 ? 1

: i < 30000 ? 2

: 3;

_int2str[ L++ ] = c + 48;

i -= c * 10000;

m = true;

}

// thousands

if( i > 999

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值