在32位处理器上,将任一整数转换为二进制形式。
要求实现函数:
void DecToBin (unsigned int iDec, char pBin[32])
输入:iDec 需要转换的十进制整数
输出:pBin 转换为二进制后的字符串,高位在左边,不足32位补0
要求实现函数:
void DecToBin (unsigned int iDec, char pBin[32])
输入:iDec 需要转换的十进制整数
输出:pBin 转换为二进制后的字符串,高位在左边,不足32位补0
示例
输入:123 输出:{“00000000000000000000000001111011”}
#include "stdafx.h"
#include <stdlib.h>
void DecToBin (unsigned int iDec, char pBin[32])
{
unsigned int temp;
int i=31;
while(i>=0)
{
temp=iDec;
temp=temp>>i;
temp=temp&1;
pBin[32-1-i]=temp+'0';
i--;
}
}
int _tmain(int argc, _TCHAR* argv[])
{
//unsigned int a=0xFFFFFFFF;
unsigned int a=0x12;
char pBin[33];
for(int i=0;i<33;i++)
{
pBin[i]='\0';
}
DecToBin (a, pBin);
printf("%s\n",pBin);
system("pause");
return 0;
}
另外简单的实现
现在看一段代码,作用是将十进制数转换为二进制数。
#include <stdio.h>
int main()
{
int x,i;
scanf("%d",&x);
for(i=31;i>=0;i--) printf("%d",x>>i&1);
system("pause");
}