.二进制与十进制的转换
(1)二进制转十进制
方法:"按权展开求和"
例:
(缓滚键1011.01)2
=(1×23+0×22+1×21+1×20+0×2-1+1×2-2)10
=(8+0+2+1+0+0.25)10
=(11.25)10
(2)十进制转二进制
·
十进制整数转二进制数:"除以2取余,逆序输出"
例:
(89)10=(1011001)2
2
89
2
44
……
1
2
22
……
0
2
11
……
0
2
5
……
1
2
2
……
1
2
1
……
0
0
……
1
·
十进制小数转二进制数:"乘以2取整,顺序输出备罩"
例:
(0.625)10=
(0.101)2
0.625
X
2
1.25
X
2
0.5
X
2
1.0
2.八进制与二进制的转换
例:将八进制的37.416转换成二进制数:
37
.
4
1
6
011
111
.100
001
110
即:(37.416)8
=(11111.10000111)2
例:将二进制的10110.0011
转换成八进制:
0
1
0
1
1
0
.
0
0
1
1
0
0
2
6
.
1
4
即:(10110.011)2
=(26.14)8
3.十六进制与二进制的转换
例:将十六进制数扰巧5DF.9
转换成二进制:
5
D
F
.
9
0101
1101
1111.1001
即:(5DF.9)16
=(10111011111.1001)2
例:将二进制数1100001.111
转换成十六进制:
0110
0001
.
1110
6
1
.
E
即:(1100001.111)2
=(61.E)16
参考资料:http://222.214.195.26/aoshai/szzh.htm
十进制的任意转换
#include
#include
int
main()
{
int
a,b,c,n
=
0,m[40];
printf("请输入你想橘历算得数
=__\b\b");
scanf
("%d",&a);
printf("
请输物源入你想罩伍态算的进制
=__\b\b");
scanf
("%d",&b);
while
(a
!=
0)
{
n
++
;
c
=
a
%
b;
m[n]
=
c;
a
=
a
/
b;
}
for
(a
=
n;
a
>=
1;a--)
printf
("%d",m[a]);
return
0;
}
他说的的是手工转换方法,不弊袭郑是使用程序的,同样,他的程序也没有给出。
你租颂可以参看我的禅罩另一个回答。
http://zhidao.baidu.com/question/17822522.html
自己看吧
楼上正解,好象没有问原理,只是问如何做。
printf()有这个功能.