数制转换- p' q7 {) _3 j: G* e8 `+ R$ y$ N
问题描述:9 p/ O: U% o+ Z# a3 I0 ]
在32位处理器上,将任一整数转换为二进制形式。
( y+ d& F2 }6 ~9 g; N* g 要求实现函数:; X& L2 `- }- J& `# }+ T
void DecToBin (unsigned int iDec, char pBin[32])
5 X* K' h3 a1 N0 C5 } 输入:iDec 需要转换的十进制整数
: I6 T& G' b- S. V, r 输出:pBin 转换为二进制后的字符串,高位在左边,不足32位补0
& p( T& h. [# [. f, e) _ 示例
% `# D; x' Y8 x1 ^# Z) _1 D% l: K 输入:123 输出:{“00000000000000000000000001111011”}1 r* k! f$ e& J7 k
*/" n" w3 M/ m+ i6 j: q' Z
#include
' Q4 e$ @+ h4 B9 Z$ T) y void DecToBin (unsigned int iDec, char pBin[32])! _# N( r9 m% R! q6 ?" V4 x
{- C. N) ~$ u1 i; F& Z. n( ~8 \
unsigned int temp;
6 N7 v3 c: t' a5 L f6 E int i=31;2 r9 v" q/ L, v
while(i>=0)9 P$ [5 [4 j4 z
{- \9 r, w0 J; Y9 p- L
temp=iDec;
) |+ E+ v- g' L+ Q3 m temp=temp>>i;( Q5 n9 X- n/ P) @: D' x
temp=temp&1;
. n' R. P% k5 y9 H/ F4 o6 g pBin[32-1-i]=temp+'0';
4 ]; ^; H# O$ d) K* b i--;" _7 c: J1 w" W4 W% c
}
( N' i8 o+ `% t# I1 C* b }
9 _+ Y. B. ]! t+ H main()4 j5 G+ Y4 M9 h0 u3 U, }
{
3 s4 e; a$ r3 i! c K6 B unsigned int a=0xFFFFFFFF;
% m7 Y" m( N: K5 h# q char pBin[33];
8 `3 _1 C5 C( c/ M* X. |. _- S3 P for(int i=0;i |