itoa的两种实现

一种是linux的实现,一种是Solaris的实现,代码如下:、
None.gif namespace linux
ExpandedBlockStart.gif {
InBlock.gif    void itoa( int i,charstring
ExpandedSubBlockStart.gif    {
InBlock.gif        int power, j;
InBlock.gif        j=i; 
InBlock.gif        for (power=1;j>=10;j/=10) 
InBlock.gif            power*=10; 
InBlock.gif        for (;power>0;power/=10)
ExpandedSubBlockStart.gif        {
InBlock.gif            *string++='0'+i/power; i%=power; 
ExpandedSubBlockEnd.gif        }
InBlock.gif        *string='\0';
ExpandedSubBlockEnd.gif    } 
ExpandedBlockEnd.gif}


None.gif namespace solaris
ExpandedBlockStart.gif {
InBlock.gif    char * itoa(long n, int base
ExpandedSubBlockStart.gif    {
InBlock.gif        register char *p; 
InBlock.gif        register int minus; 
InBlock.gif        static char buf[36];
InBlock.gif        p = &buf[36]; 
InBlock.gif        *--p = '\0'; 
ExpandedSubBlockStart.gif        if (n < 0) { minus = 1; n = -n; } else minus = 0; 
InBlock.gif        if (n == 0)  *--p = '0'; 
ExpandedSubBlockStart.gif        else while (n > 0) { *--p = "0123456789abcdef"[n % base]; n /= base; } 
InBlock.gif        if (minus) *--p = '-';
InBlock.gif        return p;
ExpandedSubBlockEnd.gif    }
ExpandedBlockEnd.gif}


关键还是怎样去求整形的位数,求出来,剩下来的事情就很少了。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值