数制转换$ _. ]' L5 p1 Y1 h* M7 i
问题描述:
4 Q( H+ g, X* W8 | 在32位处理器上,将任一整数转换为二进制形式。- f) \" @6 _1 D7 V& @
要求实现函数:
6 ^$ ]4 M/ b" n w, e2 g$ o! y void DecToBin (unsigned int iDec, char pBin[32]). L) O0 B$ Y' z0 H% a7 t& F6 g
输入:iDec 需要转换的十进制整数
; T' m- L. L/ l, s& M 输出:pBin 转换为二进制后的字符串,高位在左边,不足32位补0
( w' U2 e# {/ p 示例! o* v& d. b" u @( ^" ~$ f
输入:123 输出:{“00000000000000000000000001111011”}
4 @# u) {* h9 v8 e */
N: B/ }! E. S #include
% Z7 G* q/ [' [& `; ^ p# M void DecToBin (unsigned int iDec, char pBin[32])
4 ]5 r' N3 r: Y4 j9 n {- I; A$ L# e: m. ?5 p
unsigned int temp;& \) q0 V0 q0 ~+ H; y
int i=31;) X7 ~7 B9 P/ n+ m3 V* `0 D/ l& g& m
while(i>=0)
+ E1 ]: h% Q. I# {# i {7 }$ _& E# W+ O, o4 K
temp=iDec;
% t7 U( |. B4 e/ }3 n4 z temp=temp>>i;5 t. h4 |& j7 j4 p
temp=temp&1;) U/ k, k8 \3 F$ `& n
pBin[32-1-i]=temp+'0';
4 v. y, l) [. I; B. b6 I i--;) S* ]- Q, M2 l$ v6 l) k
}1 `/ o& ~ F. b l
}) A, x3 b- `* a9 B& e, b' I; C( }! d1 m
main()
8 a+ T: ^- A& S! t! s) G. u2 d {
& r4 \$ S T& V9 r- G unsigned int a=0xFFFFFFFF;
$ K8 r1 k; a8 a8 f& l( N char pBin[33];0 u# l j$ }: K4 r9 v
for(int i=0;i |