本文目录一览:
- 1、那位高人能给我讲讲C语言中二进制,八进制,16进制是怎么换算的?谢谢了!!!
- 2、c语言中二进制 十进制 八进制 十六进制之间的换算?
- 3、c语言中将二进制数(001101101110.110101)b转换成八进制数怎么算
那位高人能给我讲讲C语言中二进制,八进制,16进制是怎么换算的?谢谢了!!!
二进制转换含小数点部分
十六进制大同小意,把除以二的数改成16就可以了,如果不明白加我百度HI
#include
stdio.h
void
bit(int
a);
void
bit2(double
a);
int
main()
{
double
a;
int
b;
scanf("%lf",a);
b
=
(int)a;
printf("%d",b);
if((a-b)0(a-b)1)
{
bit(b);
bit2(a-b);
}
else
bit(b);
}
void
bit(int
a)
{
if(a0)
bit(a/2);
printf("%d",a%2);
}
void
bit2(double
a)
{
static
int
c
=
0;
if(c==0)
printf(".");
printf("%d",(a*21)?(int)(a*2):0);
if(a==0||c5)
{
++c;
bit2(a*2-(int)(a*2));
}
}
c语言中二进制 十进制 八进制 十六进制之间的换算?
二进制的1101转化成十进制
1101(2)=1*2^0+0*2^1+1*2^2+1*2^3=1+0+4+8=13
转化成十进制要从右到左用二进制的每个数去乘以2的相应次方
不过次方要从0开始
十进制转二进制:
用2辗转相除至结果为1
将余数和最后的1从下向上倒序写
就是结果
例如302
302/2
=
151
余0
151/2
=
75
余1
75/2
=
37
余1
37/2
=
18
余1
18/2
=
9
余0
9/2
=
4
余1
4/2
=
2
余0
2/2
=
1
余0
1/2
=
余1
故二进制为100101110
二进制转八进制
在把二进制数转换为八进制表示形式时,对每三位二进制位进行分组,应该从小数点所在位置分别向左向右划分,若整数部分倍数不是3的倍数,可以在最高位前面补若干个0;对小数部分,当其位数不是的倍数时,在最低位后补若干个0.然后从左到右把每组的八进制码依次写出,即得转换结果.
你算一下就知道了啊
比如110=2^2+2+0=6
二进制转十六进制
要将二进制转为16进制,只需将二进制的位数由右向左每四位一个单位分隔,分的不够的前边补零,用四位数的二进制数来代表一个16进制。转换表如下,括号内为十六进制
0000(0)
0001
(1)
0010
(2)
0011
(3)
0100
(4)
0101
(5)
0110
(6)
0111
(7)
1000
(8)
1001
(9)
1010(A)
1011
(B)
1100
(C)
1101
(D)
1110
(E)
1111
(F)
例如:10101011划分为1010
1011,根据转换表十六进制为AB
c语言中将二进制数(001101101110.110101)b转换成八进制数怎么算
三位二进制对应一位8进制。
所以 以小数点分隔,然后转换就行了
001 101 101 110.110 101
每三个对应一个
就是
1 5 5 6 . 6 5
结果就是
1556.65