C语言如何输入一个数值(int,float,double,char,long),以二进制的形式输出?
#include<stdio.h>#include<stdlib.h>#defineNUM2#defineZERO0.000001//整数部分的转换voidinteger...
#include<stdio.h>
#include<stdlib.h>
#define NUM 2
#define ZERO 0.000001
//整数部分的转换
void integer(int n)
{
if (n > 0)
{
integer(n / NUM);
printf("%d", n%NUM);
}
}
//小数部分的转换
void decimal(double m)
{
if (m > ZERO)
{
m = m * NUM;
printf("%d", (long)m);
decimal(m - (long)m);
}
}
int main()
{
double f;
long n;
printf("pls enter ur double:");
scanf("%lf", &f);
if (f < 0)
{
printf("-");
f = -f;
}
n = (long)f;//整数部分
printf("is:", NUM);
integer(n);
printf(".");
decimal(f - n);//小数部分的转换
printf("\n");
system("pause");
return 0;
}
这个只能输出小数的,怎么修改一下呢 展开
#include<stdlib.h>
#define NUM 2
#define ZERO 0.000001
//整数部分的转换
void integer(int n)
{
if (n > 0)
{
integer(n / NUM);
printf("%d", n%NUM);
}
}
//小数部分的转换
void decimal(double m)
{
if (m > ZERO)
{
m = m * NUM;
printf("%d", (long)m);
decimal(m - (long)m);
}
}
int main()
{
double f;
long n;
printf("pls enter ur double:");
scanf("%lf", &f);
if (f < 0)
{
printf("-");
f = -f;
}
n = (long)f;//整数部分
printf("is:", NUM);
integer(n);
printf(".");
decimal(f - n);//小数部分的转换
printf("\n");
system("pause");
return 0;
}
这个只能输出小数的,怎么修改一下呢 展开
1个回答
展开全部
#include<stdio.h>
void prt(char *p)
{int i;
for(i=7;i>=0;i--)
printf("%d",(*p & (1<<i))>0);
}
int main()
{ char c=122;
int i=123,j;
long a=124;
long long b=125;
float x=19.375;
double y=19.375;
char *p;
p=&c; printf("c="); prt(p); printf("\n");
p=(char*)&i; printf("i=");
for(j=sizeof(i)-1;j>=0;j--) prt(p+j); printf("\n");
p=(char*)&a; printf("a=");
for(j=sizeof(a)-1;j>=0;j--) prt(p+j); printf("\n");
p=(char*)&b; printf("b=");
for(j=sizeof(b)-1;j>=0;j--) prt(p+j); printf("\n");
p=(char*)&x; printf("x=");
for(j=sizeof(x)-1;j>=0;j--) prt(p+j); printf("\n");
p=(char*)&y; printf("y=");
for(j=sizeof(y)-1;j>=0;j--) prt(p+j); printf("\n");
return 0;
}
更多追问追答
追问
能改成输入一个任意的值,然后输出二进制吗?
追答
可以呀,只要第15行前,增加一个scanf()语句,读入相应的变量,就可以了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |