十进制转二进制,找bug
在32位处理器上,将任一整数转换为二进制形式。
要求实现函数:
void DecToBin (unsigned int iDec, char pBin[32])
输入:iDec 需要转换的十进制整数
输出:pBin 转换为二进制后的字符串,高位在左边,不足32位补0
示例
输入:123 输出:{“00000000000000000000000001111011”}
源码如下:请找出其中错误
#include <stdio.h>//convert decimal to binaryC
void DecToBin (unsigned int iDec, char pBin[32]);//declaration
int main(int argc, char const *argv[])
{
unsigned int iDec;
char pBin[32]={0};//zero clearing
scanf("%u",iDec);
DecToBin(iDec,pBin);
return 0;
}
//realization
void DecToBin (unsigned int iDec, char pBin[32])
{
int i=0;//i=offset
while(iDec)
{
pBin[i]=iDec%2;
iDec/=2;
i++;
}
for (i = 31; i >= 0; --i)
{
printf("%c",pBin[i] );
}
putchar('\n');
}