`
Aoogoo
  • 浏览: 20788 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

怎么把float类型按位打印出来

阅读更多
同事经常面试别人的一道题:
float f = 1.0f;
int i = (int&)f;
问i=?
我也被他问过次问题,可惜没有准确地答出来。后来还抱怨,
平常工作那会用到呀。

这次还真的用到了,要求把float类型的变量按位打印出来。
第一次尝试用下面代码:
#include <iostream>
using namespace std;

void main(){
	float f = 1.0f;
	
	unsigned int base = 1<<31;
	for(int i=0;i<32;i++){
		if((f&base)==0)
			cout<<"0";
		else
			cout<<"1";
		f = f<<1;
	}
}

但是编译不过,因为不容许一个int类型和一个float类型做&操作。
于是就想到了那道题目。用一个int变量保存float值。
#include <iostream>
using namespace std;

void main(){
	float f = 1.0f;
	int k = (int&)f;
	
	unsigned int base = 1<<31;
	for(int i=0;i<32;i++){
		if((k&base)==0)
			cout<<"0";
		else
			cout<<"1";
		k = k<<1;
	}
}

通过了,呵呵。
这个小技巧还是很有用的。
0
0
分享到:
评论
2 楼 Aoogoo 2010-04-29  
不好意思,让大家没有看懂。
我们知道float变量在内存中的表示是遵循IEEE的标准的,
不像int,short,long之类那么简单。
这段程序就是想把float变量中的内存表示打印出来。
1 楼 boyhailong 2010-04-28  
不怎么理解啊,博主能否把代码解释下啊?

相关推荐

    ESP8266支持float类型修改方法

    在ESP8266的IDF框架中,提供了类似控制台的printf操作,可以向串口打印一些信息,但是ESP8266的printf函数被封装经过了简化,不支持浮点数的格式控制符%f。文档提供ESP8266支持float类型修改方法

    自己写的printf,但是不能输出float型的数据

    其中有自己写的atoi,itoa,和自己写的printf,但是没有float的输出

    Python基础教程——变量类型

    一:数字类型 (1)int 没有限制大小,有以下的四种表现形式: 1:2进制:以'0b'开头---bin 2:8进制:以'0o'开头---oct 3:10进制:正常显示----int 4:16进制:以'0x'开头- hex (2)float:4个字节 (3)...

    big:Golang的big.Float的简单包装

    Big是golang内置的*big.Float类型的简单,不可改变的包装器,其目的是提供更用户友好的API和不变性保证,但要以牺牲一些运行时性能为代价。 例子 用法很简单: dec := big . NewDecimal ( 1.24 ) addend := big . ...

    C语言常见几中图形打印代码

    现已经历过几个步骤:从简单的了解操作平台Xcode开始,到熟悉基本的数据类型:整型:int、long、short;字符型:char;实型:float、double。然后接触到编程语言的分支结构分类——顺序、分支、循环。其中循环是重点...

    常用数据类型使用转换详解.

    刚接触VC编程的朋友往往对许多数据类型的转换感到迷惑不解,本文将介绍一些常用数据类型的使用。 我们先定义一些常见类型变量借以说明 int i = 100; long l = 2001; float f=300.2; double d=12345.119;...

    Example01.ino

    这个项目是李小瓜在学习arduino的第一个实践项目,本来想通过完成这个项目实现arduino入门,但往往现实是自己后来没有去实现它,这个项目投入时间和资金都不少,怪自己没有坚持到最后,最近整理一下,希望能和一起...

    浅谈php中变量的数据类型判断函数

    在php中我们可以通过 var_dump()打印出变量的类型和值。同时我们可以通过一些函数判断变量的类型。如果只是想得到一个变量的数据类型,可以使用gettype()函数,gettype($t) 返回$t的数据类型的字符串,要是$t不属于...

    gotabulate:Gotabulate-使用Go轻松漂亮地打印表格数据

    安装 go get github.com/bndr/gotabulate描述支持的数据类型: Int , Int64 , Float64 , String , interface{} 2D数组interface{} String , interface{}映射(键将用作标题)用法 // Create Some Fake Rowsrow_...

    leetcode-java

    浮点型:float(32位,例如:1.23f,1.23F),double(64位,例如:1.23) 字符型:char(16位) 布尔型:布尔型 在Java中,可以进行数据类型转换,“小”的数据类型可以转换成“大”的数据类型,而“大”的数据类型...

    java代码-【3】定义一个学生类,使用LinkedList对学生类进行管理,执行添加操作,并打印数据。 运行效果图为: 任务: 1.定义一个学生类Student (1)属性为:学号stuId(int),姓名name(String),成绩score(float) (2)方法为:构造方法,getter和setter方法,toString方法 2.定义三个Student类的对象,添加到LinkedList中 3.显示LinkedList中元素的内容

    java代码-【3】定义一个学生类,使用LinkedList对学生类进行管理,执行添加操作,并打印数据。 运行效果图为: 任务: 1.定义一个学生类Student (1)属性为:学号stuId(int),姓名name(String),成绩...

    整理后java开发全套达内学习笔记(含练习)

    float类型要跟f或F;或强制类型转换 科学计数法:12.5E3 类型转换默认序列: byte &gt; short &gt; int &gt; long &gt; float &gt; double char 」 注意:默认类型转换(自动类型提升)会丢失精度,但只有三种情况: int&gt;float;...

    数据挖掘医院案例.py

    3、 数据类型转换,将销售数量、应收金额、实收金额的数据类型改为数值类型(float)。 4、 修改日期,把日期里面的星期去掉,只留下日期 5、 将表格里读取的日期字符串转换日期格式 6、 按销售日期进行升序排列数据...

    随机模拟java数据插件Jmockdata.zip

    4. 可以通过JmockDataContext 获取模拟过程的所有上下文信息,甚至可以打印整个模拟类型树 5. 可以通过JMockDataManager 注册模拟数据类型,重写模拟数据算法,注册模拟数据类拦截器等 6. 可以通过实现MockData来...

    VFP]对报表.FRX文件的分析

    字段名称 类型 长度 小数 说明 1 PLATFORM C 8 操作平台(_DOS或_WINDOWS) 2 UNIQUEID C 10 唯一标识(当NAME合EXPR都为空时以_RHE开头, 否则以_RNR开头) 3 TIMESTAMP N 10 时间标签(先后次序) 4 OBJTYPE N 2 目标...

    C语言的指针类型详细解析

    指针存储了内存的地址,同时指针是有类型的,如int*,float*,那么,一个自然的猜想就是指针变量应该存储这两方面的信息:地址和指针类型,比如,就像下面的结构体: 代码如下:struct pointer{ long address;...

    计算机程序设计-VB语言基础.pptx

    编码规则 代码书写规则 不分大小写 句尾无分号 冒号并行 下划线续行 单撇号注释 Private Sub Command1_click() Rem 一个简单的示例 Dim a as integer, b as integer a=5 : b=10 b= A+B Print b ' 在窗体上打印b的值...

    C# for CSDN 乱七八糟的看不懂

    值类型包括简单类型(如 char、int 和 float 等)、枚举类型和结构类型。引用类型包括类 (Class)类 型、接口类型、委托类型和数组类型。 变量的类型声明 变量的类型声明 每个变量必须预先声明其类型。如 int a; int ...

    Java面向对象程序设计方案练习题(1).doc

    最后在测试类Vehicle中的main()中实例化一个交通工具对象 并通过方法给它初始化sp eed,size的值 并且通过打印出来。另外 调用加速 减速的方法对速度进行改变。 【练习题】03.类的成员变量与方法、构造方法 在程序中...

    Java面向对象程序设计方案练习题.doc

    最后在测试类Vehicle中的main()中实例化一个交通工具对象 并通过方法给它初始化sp eed,size的值 并且通过打印出来。另外 调用加速 减速的方法对速度进行改变。 【练习题】03.类的成员变量与方法、构造方法 在程序中...

Global site tag (gtag.js) - Google Analytics