c语言-C语言十进制转换成二进制(可转换小数)哪里出错了?

问题描述

C语言十进制转换成二进制(可转换小数)哪里出错了?
//
#include
#include
#define decimalnum 8//小数二进制位数
void main()
{
char Integerbuffer[100];//整数
char decimalbuffer[20];//小数
float number;
double decimalnumbera;
long value;
int i;
printf(""请输入需要转换成二进制的十进制数:"");
scanf(""%f""&number);
//printf(""
%f
""number);
value=(long)number;
a=decimalnumber=number-value;
//printf(""%f
""decimalnumber);
itoa(value Integerbuffer 2); // 将value 转为存成2进制之字串
printf(""整数的二进制为%s
""Integerbuffer);
//printf(""%s""itoa(value Integerbuffer 2));
while(a>0.0)
{
decimalbuffer[i]='0'+(int)(a*2);
//printf(""%d""(int)(a*2));
a=a*2-(int)(a*2);
if (i++==decimalnum) break;
}
decimalbuffer[i]='';
printf(""小数的二进制形式为.%s
""decimalbuffer);
printf(""%f的二进制为%s.%s
""numberIntegerbuffer decimalbuffer);
system(""pause"");
}

解决方案

没有初始化i?初始化后再看看还有啥错误不

解决方案二:

 // app1.cpp : Defines the entry point for the console application.//#include ""stdafx.h""#include <stdio.h>#include<stdlib.h>#define decimalnum 8//小数二进制位数 void main(){char Integerbuffer[100];//整数char decimalbuffer[20];//小数float number;double decimalnumbera;long value;int i=0;printf(""请输入需要转换成二进制的十进制数:"");scanf(""%f""&number);//printf(""
%f
""number);value=(long)number;a=decimalnumber=number-value;//printf(""%f
""decimalnumber);itoa(value Integerbuffer 2); // 将value 转为存成2进制之字串printf(""整数的二进制为%s
""Integerbuffer);//printf(""%s""itoa(value Integerbuffer 2));    while(a>0.0)    {        decimalbuffer[i]='0'+(int)(a*2);        //printf(""%d""(int)(a*2));        a=a*2-(int)(a*2);        if (i++==decimalnum) break;    }    decimalbuffer[i]='';    printf(""小数的二进制形式为.%s
""decimalbuffer);    printf(""%f的二进制为%s.%s
""numberIntegerbuffer decimalbuffer);    system(""pause"");}

int i=0;
这样就可以了。

解决方案三:
请输入需要转换成二进制的十进制数:123.125
整数的二进制为1111011
小数的二进制形式为.001
123.125000的二进制为1111011.001
请按任意键继续. . .

解决方案四:

解决方案五:
C语言中字符串如何转换为二进制、八进制、十进制、十六进制
C语言实现二进制与十进制转换
条条大路通罗马——由C语言中十进制转换为二进制想到的

时间: 2024-10-04 02:52:20

c语言-C语言十进制转换成二进制(可转换小数)哪里出错了?的相关文章

C++中几种将整数转换成二进制输出的方法总结_C 语言

看<编程之美>第二节的时候,它是定义的一个整型,然后取位.但是他的那个或运算符号好像写错了,写成了异或符号"^",应该是"|".我就突然对二进制的输出感兴趣了.想知道怎样输出二进制.我们知道C++输出十六进制是cout〈〈hex〈〈 a:而八进制是cout〈〈 ocx〈〈 a;二进制则没有默认的输出格式,需要自己写函数进行转换,于是上网搜索了一下.网上思路真是广泛啊. 下面列出一些方法.  #include 〈iostream〉 #include 〈li

c语言-c++ 进制转换由十六进制转换成二进制

问题描述 c++ 进制转换由十六进制转换成二进制 void change16_2() { printf("十六进制->二进制 "); int i,a,b,c,d,k; int x[3]; char m[3]={0,0,0},n[3]; printf("转换数(十六进制):"); scanf("%s",m); for(i=0;i { if(m[i]>='A'&&m[i]<='F') { x[i]=10+m[i]-6

c++中如何把一个十进制整数转换成二进制然后统计其中1的个数

问题描述 c++中如何把一个十进制整数转换成二进制然后统计其中1的个数 c++中如何把一个十进制整数转换成二进制然后统计其中1的个数 解决方案 做个循环,每次除以2,将余数输出或保存,可转换为二进制,,至于统计,每次除法所得余数为1,使得计数器加1 解决方案二: itoa转为二进制字符串,自己遍历统计1的个数 解决方案三: int x = 123; int count = 0; while (x > 0) { count += x % 2; x /= 2; } 解决方案四: http://cod

php将图片文件转换成二进制输出的方法_php技巧

本文实例讲述了php将图片文件转换成二进制输出的方法.分享给大家供大家参考.具体实现方法如下: header( "Content-type: image/jpeg"); $PSize = filesize('1.jpg'); $picturedata = fread(fopen('1.jpg', "r"), $PSize); echo $picturedata; 就这么简单4行代码,就将图片以二进制流的形式输出到客户端了,和打开一张图片没有任何区别. 这里需要注意的

把普通字符串转换成二进制字符串的函数写出来了,和大家分享一下。

二进制|函数|转换|字符串 '普通字符串转换成二进制字符串函数Function Str2Bin(String)  Dim i, tmpbin  For i=1 to strLength(String)    tmpbin = tmpbin & ChrB(Asc(Mid(String,I,1)))  Next  Str2Bin = tmpbinEnd Function '以下函数来自ChinaASP,计算字符串的真正字节数(支持中文)Function strLength(str)   If (le

php将图片文件转换成二进制输出的方法

 本文实例讲述了php将图片文件转换成二进制输出的方法.分享给大家供大家参考.具体实现方法如下: 1 2 3 4 header( "Content-type: image/jpeg"); $PSize = filesize('1.jpg'); $picturedata = fread(fopen('1.jpg', "r"), $PSize); echo $picturedata; 就这么简单4行代码,就将图片以二进制流的形式输出到客户端了,和打开一张图片没有任何区别

C#将image中的显示的图片转换成二进制

原文:C#将image中的显示的图片转换成二进制  1.将Image图像文件存入到数据库中 我们知道数据库里的Image类型的数据是"二进制数据",因此必须将图像文件转换成字节数组才能存入数据库中. View Code //将本地图片转换成二进制保存起来 private byte[] SetImageToByteArray(string fileName) { FileStream fs = null; try { fs = new FileStream(fileName, FileM

ascii-汇编将输入的十进制数字转换成二进制,八进制,十六进制,代码写出来了,但是却无法正常运行

问题描述 汇编将输入的十进制数字转换成二进制,八进制,十六进制,代码写出来了,但是却无法正常运行 data segment mesg db 'please input :',0ah,0dh,'$' buf db 5 db ? db 5 dup(?) buf1 db 5 dup('0') data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax lea dx,mesg ;在屏幕上显示mesg标号后的内容 m

急求解决-VB怎么将图片转换成二进制,然后再写入数据库

问题描述 VB怎么将图片转换成二进制,然后再写入数据库 希望将代码写的详细点,我是初学者.选择一张图片后,将它转换成二进制,再用变量保存二进制数据,最后将数据写入数据库 解决方案 将图片转换成二进制写入sqlite