同事经常面试别人的一道题:
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;
}
}
通过了,呵呵。
这个小技巧还是很有用的。
分享到:
相关推荐
在ESP8266的IDF框架中,提供了类似控制台的printf操作,可以向串口打印一些信息,但是ESP8266的printf函数被封装经过了简化,不支持浮点数的格式控制符%f。文档提供ESP8266支持float类型修改方法
其中有自己写的atoi,itoa,和自己写的printf,但是没有float的输出
一:数字类型 (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类型的简单,不可改变的包装器,其目的是提供更用户友好的API和不变性保证,但要以牺牲一些运行时性能为代价。 例子 用法很简单: dec := big . NewDecimal ( 1.24 ) addend := big . ...
现已经历过几个步骤:从简单的了解操作平台Xcode开始,到熟悉基本的数据类型:整型:int、long、short;字符型:char;实型:float、double。然后接触到编程语言的分支结构分类——顺序、分支、循环。其中循环是重点...
刚接触VC编程的朋友往往对许多数据类型的转换感到迷惑不解,本文将介绍一些常用数据类型的使用。 我们先定义一些常见类型变量借以说明 int i = 100; long l = 2001; float f=300.2; double d=12345.119;...
这个项目是李小瓜在学习arduino的第一个实践项目,本来想通过完成这个项目实现arduino入门,但往往现实是自己后来没有去实现它,这个项目投入时间和资金都不少,怪自己没有坚持到最后,最近整理一下,希望能和一起...
在php中我们可以通过 var_dump()打印出变量的类型和值。同时我们可以通过一些函数判断变量的类型。如果只是想得到一个变量的数据类型,可以使用gettype()函数,gettype($t) 返回$t的数据类型的字符串,要是$t不属于...
安装 go get github.com/bndr/gotabulate描述支持的数据类型: Int , Int64 , Float64 , String , interface{} 2D数组interface{} String , interface{}映射(键将用作标题)用法 // Create Some Fake Rowsrow_...
浮点型:float(32位,例如:1.23f,1.23F),double(64位,例如:1.23) 字符型:char(16位) 布尔型:布尔型 在Java中,可以进行数据类型转换,“小”的数据类型可以转换成“大”的数据类型,而“大”的数据类型...
java代码-【3】定义一个学生类,使用LinkedList对学生类进行管理,执行添加操作,并打印数据。 运行效果图为: 任务: 1.定义一个学生类Student (1)属性为:学号stuId(int),姓名name(String),成绩...
float类型要跟f或F;或强制类型转换 科学计数法:12.5E3 类型转换默认序列: byte > short > int > long > float > double char 」 注意:默认类型转换(自动类型提升)会丢失精度,但只有三种情况: int>float;...
3、 数据类型转换,将销售数量、应收金额、实收金额的数据类型改为数值类型(float)。 4、 修改日期,把日期里面的星期去掉,只留下日期 5、 将表格里读取的日期字符串转换日期格式 6、 按销售日期进行升序排列数据...
4. 可以通过JmockDataContext 获取模拟过程的所有上下文信息,甚至可以打印整个模拟类型树 5. 可以通过JMockDataManager 注册模拟数据类型,重写模拟数据算法,注册模拟数据类拦截器等 6. 可以通过实现MockData来...
字段名称 类型 长度 小数 说明 1 PLATFORM C 8 操作平台(_DOS或_WINDOWS) 2 UNIQUEID C 10 唯一标识(当NAME合EXPR都为空时以_RHE开头, 否则以_RNR开头) 3 TIMESTAMP N 10 时间标签(先后次序) 4 OBJTYPE N 2 目标...
指针存储了内存的地址,同时指针是有类型的,如int*,float*,那么,一个自然的猜想就是指针变量应该存储这两方面的信息:地址和指针类型,比如,就像下面的结构体: 代码如下:struct pointer{ long address;...
编码规则 代码书写规则 不分大小写 句尾无分号 冒号并行 下划线续行 单撇号注释 Private Sub Command1_click() Rem 一个简单的示例 Dim a as integer, b as integer a=5 : b=10 b= A+B Print b ' 在窗体上打印b的值...
值类型包括简单类型(如 char、int 和 float 等)、枚举类型和结构类型。引用类型包括类 (Class)类 型、接口类型、委托类型和数组类型。 变量的类型声明 变量的类型声明 每个变量必须预先声明其类型。如 int a; int ...
最后在测试类Vehicle中的main()中实例化一个交通工具对象 并通过方法给它初始化sp eed,size的值 并且通过打印出来。另外 调用加速 减速的方法对速度进行改变。 【练习题】03.类的成员变量与方法、构造方法 在程序中...
最后在测试类Vehicle中的main()中实例化一个交通工具对象 并通过方法给它初始化sp eed,size的值 并且通过打印出来。另外 调用加速 减速的方法对速度进行改变。 【练习题】03.类的成员变量与方法、构造方法 在程序中...