我在寻找一个允许我打印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;
}
但是当我打电话
printf("a %s",int2bin(aMask)) // aMask = 0xFF000000
我得到类似的输出;
0000000000000000000000000000000000000000xtpYy(还有一堆未知字符。
这是功能上的缺陷还是我在打印字符数组的地址或其他内容?抱歉,我看不到哪里出了问题。
注意:代码从这里
编辑:这不是家庭作业,仅供参考,我正在尝试用一种不熟悉的语言调试其他人的图像处理例程。但是,如果因为它是一个基本概念而被标记为家庭作业,那么公平竞争就可以了。
皈依舞
慕码人2483693
明月笑刀无情
相关分类