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;
}
这个只能输出小数的,怎么修改一下呢
展开
 我来答
听不清啊
高粉答主

2019-01-09 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部

#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()语句,读入相应的变量,就可以了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式