プログラミング10進数整数をバイナリに変換

1017 ワード

32ビットプロセッサで、いずれかの整数をバイナリ形式に変換します.
要求実装関数:
void DecToBin (unsigned int iDec, char pBin[32])
入力:iDec変換が必要な10進数整数
出力:pBinはバイナリ後の文字列に変換され、上位は左で、32ビット未満は0を補う

入力:123出力:{"00000000000000000000001111011"}
#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
",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");
}