相关疑难解决方法(0)

使用C在二进制表示中打印int

我正在寻找一个允许我打印int的二进制表示的函数.到目前为止我所拥有的是什么;

char *int2bin(int a)
{
 char *str,*tmp;
 int cnt = 31;
 str = (char *) malloc(33); /*32 + 1 , because its a 32 bit bin number*/
 tmp = str;
 while ( cnt > -1 ){
      str[cnt]= '0';
      cnt --;
 }
 cnt = 31;
 while (a > 0){
       if (a%2==1){
           str[cnt] = '1';
        }
      cnt--;
        a = a/2 ;
 }
 return tmp;

}
Run Code Online (Sandbox Code Playgroud)

但是当我打电话时

printf("a %s",int2bin(aMask)) // aMask = 0xFF000000
Run Code Online (Sandbox Code Playgroud)

我输出像;

0000000000000000000000000000000000xtpYy(还有一堆未知字符.

这是函数中的缺陷还是我打印字符数组的地址或什么?对不起,我只是看不出我出错的地方.

NB代码来自这里

编辑:这不是家庭作业FYI,我正在尝试用不熟悉的语言调试别人的图像处理程序.然而,如果它被标记为家庭作业,因为它是一个基本概念,然后公平竞争.

c binary integer

23
推荐指数
3
解决办法
9万
查看次数

标签 统计

binary ×1

c ×1

integer ×1