当前位置: 技术问答>linux和unix
十进制转换为二进制,sprintf函数怎么不好使呢,高手看看
来源: 互联网 发布时间:2016-07-30
本文导语: char c[1024]; int x=10; sprintf(c,"%b",x);//此函数将X转换成2进制字符串 最后这个打印出来的结果却是: %b.这是为什么呢? 如果sprintf(c,"%x",x);能正常打印出x的16进制. 如果sprintf(c,"%o",x);能正常打印出x的8进制...
char c[1024];
int x=10;
sprintf(c,"%b",x);//此函数将X转换成2进制字符串
最后这个打印出来的结果却是: %b.这是为什么呢?
如果sprintf(c,"%x",x);能正常打印出x的16进制.
如果sprintf(c,"%o",x);能正常打印出x的8进制.
高手请指点下问题出在哪里.
int x=10;
sprintf(c,"%b",x);//此函数将X转换成2进制字符串
最后这个打印出来的结果却是: %b.这是为什么呢?
如果sprintf(c,"%x",x);能正常打印出x的16进制.
如果sprintf(c,"%o",x);能正常打印出x的8进制.
高手请指点下问题出在哪里.
|
我在家编写并调试一个Linux的_itoa程序,可以2,4,8,16,32,64等进制转化整数。
#include
#include
#ifdef _STDIO_H
#define wLong 32
#else
#define wLong 16
#endif
char *_itoa(int val, char *buf, int d)
{
int i=0, j, n;
char tmp[wLong+1];
if(d==2)
while( i>=1; }
else
while( val ){ n=val%d; tmp[i++]=n+(n