那位高人能给我讲讲C语言中二进制,八进制,16进制是怎么换算的?谢谢了!!!

2024-11-22 03:12:43
推荐回答(2个)
回答1:

二进制和八,十六进制的互换最简单了,每4位二进制码正好换成1个十六进制数,每3位二进制码正好换成1个八进制数.
2和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

2和8进制对应如下:
000-0
001-1
010-2
011-3
100-4
101-5
110-6
111-7

回答2:

二进制转换含小数点部分
十六进制大同小意,把除以二的数改成16就可以了,如果不明白加我百度HI
#include
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(a>0)
bit(a/2);
printf("%d",a%2);
}

void bit2(double a)
{
static int c = 0;
if(c==0)
printf(".");
printf("%d",(a*2>1)?(int)(a*2):0);
if(a==0||c<5)
{
++c;
bit2(a*2-(int)(a*2));
}
}