引用 6 楼 rocktyt2 的回复:float val=FLT_MAX; printf("0x%x",val); 直接这样就行,你那个转int之后就不是原来的样子了,3楼的转法能保持数据不变 只是想打印根本不需要进行这步转换,printf根本不管你是什么类型的 引用 4 楼 lvkush0903 的回复:可以看看内存中的排列 float的使用一定要小……
引用 7 楼 zrdongjiao 的回复:引用 6 楼 rocktyt2 的回复:float val=FLT_MAX; printf("0x%x",val); 直接这样就行,你那个转int之后就不是原来的样子了,3楼的转法能保持数据不变 只是想打印根本不需要进行这步转换,printf根本不管你是什么类型的 引用 4 楼 lvkush0903 的回复:可以看看……
float val=FLT_MAX; printf("0x%x",val); 直接这样就行,你那个转int之后就不是原来的样子了,3楼的转法能保持数据不变 只是想打印根本不需要进行这步转换,printf根本不管你是什么类型的
可以看看内存中的排列 float的使用一定要小心,针对不同编译器,在内存中的存放是不同的,切记!!所以消息通信中一定要杜绝采用float。 所以对float不能转来转去。 你这个问题要针对特定编译器来看,当做学习吧,千万别较真。
# include <stdio.h> int main() { float a = 3.402823466e+38F; printf("%lx\n", *((unsigned long *)&a)); return 0; }
70,037
社区成员
243,247
社区内容
加载中
试试用AI创作助手写篇文章吧