float输出来老是十六进制现实,求高手

作者&投稿:旗群 (若有异议请与网页底部的电邮联系)
C++中如何把float型的实际十六进制值输出来?~

楼上的方法可以。不过若是换成了double,则强制转换为int会截断数据了
可以使用逐字节输出

#include
int main()
{
double df = 123.456;
float f = 123.456f;
unsigned char *p;
int i;

/*输出float*/
printf("测试float f=123.456f
");
printf("%f
%X
%f
", f, f, f);


printf("%f
%X
%f
", f, *(int *)&f, f);
printf("逐字节输出");
p=(unsigned char *)&f;
for(i=sizeof(f)-1;i>=0;i--)
{
printf("%02X",p[i]);
}
printf("

");


/*输出double*/
printf("测试double df=123.456
");
printf("%f
%X
%f
", df, df, df);


printf("%f
%X
%f
", df, *(int *)&df, df);

printf("逐字节输出");
p=(unsigned char *)&df;
for(i=sizeof(df)-1;i>=0;i--)
{
printf("%02X",p[i]);
}
printf("
");


getchar();
return 0;
}

你们老师闲着蛋疼!直接有格式控制可以将十进制数变成二进制十六进制。。八进制输出。。。却非要你们自己写函数。。。无语。。。优秀的程序员都是懒惰的!

对average成员函数的调用没有加括号, 所以认为是地址, 打印指针不就按16进制么

float aaa=3.8; 请问怎么将aaa转换为一个十六进制数组。十分着急,万分感谢16进制数组是? 你举例,转换出来的结果是怎样? float.Parse(aaa.


C语言中float是什么意思
尾数表示一个介于 1.0 和 2.0 之间的数。由于尾数的高顺序位始终为 1,因此它不是以数字形式存储的。此表示形式为 float 类型提供了一个大约在 -3.4E+38 和 3.4E+38 之间的范围。定义输入输出举例如下:

C语言中%6.2f\\n的6的含义是什么?
loat a = 123456.789;printf("%6.2f", a);6.2f的格式含义是,数字整体长度包括小数点为6位,保留两位小数。但当实际长度大于格式定义的位数时以实际为准,因此输出是123456.79 第二个当格式定义的位数大于实际长度时,补空格 输出就是:##1.20 #表示空格 你可以把a改为 1234.789再试试,就...

C语言中int和float有什么区别啊
1、int:是一种数据类型,在编程语言(C、C++、C#、Java等)中,是用于定义整数类型变量的标识符。2、float:于存储单精度浮点数或双精度浮点数。二、数据范围不同 1、int:int占用4字节,32比特,数据范围为-2147483648~2147483647[-2^31~2^31-1]。2、float:loat 类型提供了一个在 -3.4E+38...

C语言如何判断函数的类型 fff(float x ) {printf("%d\\n",x*x);}...
函数返回值类型由函数头部的返回值类型决定 例如 函数头部为int f(),这样的话,返回值类型为int型;又如头部为double f()的话,返回值类型为double型;头部为char *f()的话,返回值为char *,即指向char的指针 特别的,如果函数头部没有显示的说明返回值类型,则在C中一般是默认当作返回int型,如f(),...

C语言期末复习试题赶紧复习起来
16,有如下程序 main()[ int a; char c=10;loat f=100.0;double x;a=f\/=c*=(x=6.5);printf("%d %d%3.1f%3.1f\\n"a,c,f,x);程序运行后输出结果是--- A、1 65 1 6.5 B、1 65 1.5 6.5 C、1 65 1.0 6.5 D、2 65 1.5 6.5 答案:B一一知识点:赋值表达式 17...

C语言中%6.2f\\n的6的含义
loat a = 123456.789;printf("%6.2f", a);6.2f的格式含义是,数字整体长度包括小数点为6位,保留两位小数。但当实际长度大于格式定义的位数时以实际为准,因此输出是123456.79 第二个当格式定义的位数大于实际长度时,补空格 输出就是:##1.20 #表示空格 你可以把a改为 1234.789再试试,就...

java基础多选题,全对另加分
1.AC 2.CD 3.ABCD 4.ACD(因为能正常运行,即没有异常,不执行catch块内的TEST2)但又不一定,如果你的unsafe()声明了throws SafeException,并在程序中会抛出这样的错误,则是 BCD ,我看那个方法名称起得跟异常名有点像,所以……5.BC 6.ABCD 7.BD 8.ABCD 9.ABC(没理解题意,如果意思是下列...

C语言中%6.2f\\n的6的含义
loat a = 123456.789;printf("%6.2f", a);6.2f的格式含义是,数字整体长度包括小数点为6位,保留两位小数。但当实际长度大于格式定义的位数时以实际为准,因此输出是123456.79 第二个当格式定义的位数大于实际长度时,补空格 输出就是:##1.20 #表示空格 你可以把a改为 1234.789再试试,就...

C语言中%6.2f\\n的6的含义是什么?
loat a = 123456.789; \\x0d\\x0aprintf("%6.2f", a);\\x0d\\x0a\\x0d\\x0a%6.2f的格式含义是,数字整体长度包括小数点为6位,保留两位小数。但当实际长度大于格式定义的位数时以实际为准,因此输出是123456.79 \\x0d\\x0a\\x0d\\x0a第二个当格式定义的位数大于实际长度时,补空格 \\x...

C语言期末考试
16,有如下程序 main()[ int a; char c=10;loat f=100.0;double x;a=f\/=c*=(x=6.5);printf("%d %d%3.1f%3.1f\\n"a,c,f,x);程序运行后输出结果是--- A、1 65 1 6.5 B、1 65 1.5 6.5 C、1 65 1.0 6.5 D、2 65 1.5 6.5 答案:B一一知识点:赋值表达式 17...

酒泉市13172073301: C++变量定义为float输出 1“\n”10 . . . 100000000000 但结果从百万开始是以 1e+006的方式表示的为什么 -
泣泉奥佛: 有效数字的关系,float只有6或7位有效数字,位数再多可能产生误差.

酒泉市13172073301: 单片机发送的float型数据到电脑上是16进制,我怎么把他推算回到10进制,因为有小数点的问题,怎么算 -
泣泉奥佛: 一般情况下,都会采用IEEE754标准来传输浮点数的,你只要按照IEEE754的标准去把二进制数,转化为10进制数就可以了

酒泉市13172073301: C语言位运算编程 1. 输入一个float型数,以十六进制形式输出其32位机器数? -
泣泉奥佛: #include<stdio.h>int main() {float d;scanf("%f",&d);float *p=&d;int *out = (int*)p;printf("%X\n",*out); }

酒泉市13172073301: C语言,将浮点数输出为十六进制为什么输出是0,如何改 -
泣泉奥佛: 浮点数以%x格式输出会出现异常,需要强制进行类型转换, 将printf("your is %x",a);改为: printf("your is %x",(int)a);

酒泉市13172073301: float总是输出0.00000 -
泣泉奥佛: 1,错误原因:数据类型定义错误.其实,如果是int与short、long的混用,也不会造成这个问题,因为这几个类型都是整数,其二进制表示方法类型,只是数据长度不同.而float定义浮点数,其数据表示方法与整数的表示方法差别很大,直接混用必然会导致问题.2 改正措施:修改数据定义方式:float a,b,k; 其余代码不变.在vs2010下测试通过.

酒泉市13172073301: C语言为什么当输出一个固定float型时输出的数字变了,就是float a=666.666,我再用“%f” -
泣泉奥佛: 因为%f,也就是float型变量的精度就是小数点后六位,你指定按照%f格式输出,当然会变.可以尝试%nf,n为数据宽度.

酒泉市13172073301: 怎样让它输出16进制或八进制的结果啊? -
泣泉奥佛: 输出格式修改为%x和%o即可,%x代表十六进制,%o是八进制. 转换说明符: %a(%A) 浮点数、十六进制数字和p-(P-)记数法(C99) %c 字符 %d 有符号十进制整数 %f 浮点数(包括float和doulbe) %e(%E) 浮点数指数输出[e-(E-)记数法] %g(%G) 浮点数不显无意义的零"0" %i 有符号十进制整数(与%d相同) %u 无符号十进制整数 %o 八进制整数 %x(%X) 十六进制整数 %p 指针 %s 字符串 %% "%"

酒泉市13172073301: c语言中的float数据类型的有效数字为什么是6~7位 -
泣泉奥佛: float数据 机器内2113是2进制数,1位符号位8位指数位23位“尾数”位 共32 位 2进制数.平时讲 有效数字 是6~7位 ,指10进制.通常程序输入的数是10进制,进入5261机器后要化4102成2进制,计算完又转十进制输出.10进制到2进制,2进...

酒泉市13172073301: C语言中float f=1.23,为什么用printf(“%d”,f)输出是乱码? -
泣泉奥佛: “C语言不是能自动将输出数据转化为格式控制类型” 指的是在赋值运算的时候,在printf函数里头是需要形参与实参一一对应.而且必须是一一对应!C语言输出时调用printf函数实现的,这里的要求就与我们的函数里头讲的要求是一样的.printf只不过是一类标准的库函数,它本质上还是函数.

酒泉市13172073301: 某个C语言程序的float变量,内部编码是0xbd600000(前缀0表示16进制),求改变量表达 -
泣泉奥佛: #include <stdio.h>/** float变量内部编码16进制:0xbd600000 等价于:floatb变量内部编码2进制:10111101011000000000000000000000 该二进制每位的含义为:1 01111010 11000000000000000000000 S EEEEEEEE ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网