在 32 位处理器上,将任一整数转换为二进制形式。
要求实现函数:
void DecToBin (unsigned int iDec, char pBin[32])
输入:iDec 需要转换的十进制整数
输出:pBin 转换为二进制后的字符串,高位在左边,不足 32位补0
示例
输入:123
输出:{“00000000000000000000000001111011”}
#include<stdio.h>
void DecToBin (unsigned int iDec, char pBin[32])
{
int i,a[32],j=0;
for(i = 0; i < 32; i++)
pBin[i] = '0';
while(iDec>0)
{
a[j++]=iDec%2;
iDec/=2;
}
int k=j-1;
for(i=32-j;i<32;i++)
pBin[i]=a[k--]+'0';
}
int main()
{
unsigned int idec;
char pBin[32];
while(~scanf("%d",&idec)){
DecToBin(idec, pBin);
for(int i = 0; i < 32; i++)
printf("%c", pBin[i]);
printf("\n");
}
return 0;
}