c语言 整数转换成二进制 模仿c++的 _itoa() 函数

_itoa() 函数

头文件 :#include <stdlib.h>
char *_itoa(int _value, char* _Dest, int _Radix);
功能:实现整数转换成任意进制
参数:
	int _value:	要转换的整数
	char* _Dest: 	存储的指针
	int _Radix:		要转换的进制
返回值: 返回一个字符串指针首地址

_itoa(10, buf, 2);
cout<<buf<<endl;	// 1010    

c语言自己实现 整数转换成二进制

char* any_convert(int n, char buf[], int con_n){
    char *str = buf;
    char tmp;
    int x,i=0;
    int len = 0;    //buf长度
    while(n){
    	//按照进制转换定义(短除法)
        x = n % con_n;
        buf[i++] = (char)x + '0';
        n /= con_n;
        len++;
    }
    buf[i] = '\0';	//加一个'\0'结束字符串
    //到这里buf的字符串是倒着的,需要逆序
    for(i=0; i< len/2; i++){
        tmp = buf[i];
        buf[i] = buf[len-1-i];
        buf[len-1-i] = tmp;
    }
    //有一个特殊情况 n=0的时候没有赋值,所以这里要赋值返回
    if(buf[0]=='\0'){	
        buf[0] = '0';
        buf[1] = '\0';
    }
    return str;
}
#include <stdio.h>
int main(int argc, char* argv[]){
    char buf[32];
    char *s = any_convert(10, buf, 2);
    printf("s=%s  buf=%s\n", s, buf);	//1010 1010
}
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值