(int&)a是什么意思 http://www.cnblogs.com/CBDoctor/archive/2012/08/19/2646171.html

在《程序员面试宝典》有这样一道题目:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string>
using  namespace  std;
int  _tmain( int  argc, _TCHAR* argv[])
{
     float  fa = 1.0f;
     cout<<&fa<<endl; //0x0012ff60
     cout<<( int )fa<<endl;   //1
     cout<<( float &)fa<<endl; //1
     cout<<*(( float *)(&fa))<<endl; //1
     cout<<( int &)fa<<endl; //1065353216
     
     return  0;
}

里面出现了一个很奇怪的输出形式就是(int&)a.

其实,(int&)a就是*(int*)(&a)

  1. 首先对float型变量取地址
  2. 强制类型转换为整型变量的地址(地址的值并没有变)
  3. 将该地址指向的变量输出(但是由于整型和浮点型数据存储方式的不同,输出结果是不同的)

下面说一下整型变量和浮点型变量的存储区别:

下面以浮点数125.5为例来说明:

125二进制表示形式为1111101,小数部分表示为二进制为 1,则125.5二进制表示为1111101.1,由于规定尾数的整数部分恒为1,则表示为1.1111011*2^6,阶码为6,加上127为133,则表示为10000101,而对于尾数将整数部分1去掉,为1111011,在其后面补0使其位数达到23位,则为11110110000000000000000

则其二进制表示形式为

0 10000101 11110110000000000000000,则在内存中存放方式为:

  • 00000000   低地址
  • 00000000
  • 11111011
  • 01000010   高地址

-------------------------------------------------------------

对于将一个浮点型数据(double)赋值给整型数据(int)是怎样截断的?

float fa = 1.0f;

cout<<(int)fa<<endl;//1

所以只保留低位的数据

(int)a是什么意思相关推荐

  1. Thinking In C++中文版

    下载 第1章  对象的演化 计算机革命起源于一台机器,程序设计语言也源于一台机器. 然而计算机并不仅仅是一台机器,它是心智放大器和另一种有表述能力的媒体.这一点 使它不很像机器,而更像我们大脑的一部分 ...

  2. c语言long int表示范围_C语言编程第9讲——这些C语言整数类型的知识点你掌握了吗...

    1.char其实是一种整数类型 在C语言中,字符使用整数来表示. 例如下面的代码: #include int main(){ char letter = '2'; printf("Lette ...

  3. C++ 笔记(26)— 主函数 main(int argc, char *argv[]) 参数说明

    带形参的 main 函数,如 int main( int argc, char* argv[], char **env ) 是 UNIX .Linux 以及 Mac OS 操作系统中 C/C++ 的 ...

  4. java 无法取消引用_Java的新手,并出现错误“无法取消引用int” - java

    我是java的新手,并且已经从事了一段时间,但是仍然收到错误消息:无法取消引用int.我看到了几个类似的问题,但仍然无法弄清自己的情况. 这是完整的代码: package inclass; class ...

  5. python 把int类型转bytes以及把bytes 转int 类型(使用方法to_bytes ,from_byte, struct)

    把int类型转bytes 方法1 使用方法to_bytes to_bytes 方法里面有3个参数 , 第一个数是指定要转换的bytes占多少个字节 第二个是byteorder 是指定大端或者是小端 的 ...

  6. TypeError: sequence item 1: expected str instance, int found

    报错具体内容如下: 这里 是使用re.sub() 函数的时候 ,里面的第二个参数必须是string 类型, 我这里使用int 类型所以就报错了 处理方法就是把 int 类型数据转成string 类型的 ...

  7. ValueError: invalid literal for int() with base 10: “ ”

    出现这个错误 :ValueError: invalid literal for int() with base 10: ''  " 或者: ValueError: invalid liter ...

  8. TypeError: ord() expected string of length 1, but int found

    错误如下 ord 里面要求的是一个string 的字符, 这里使用了int  ,所以修改了print(ord("1")) 转ASCII 的时候需要注意了,

  9. BigDecimal 转换为int 或者其他类型

    我列举了转换的方法 BigDecimal HALF_UP = new BigDecimal("-12.44").setScale(1, RoundingMode.HALF_UP); ...

  10. public static final int REMIN_REQUEST_CODE = 0x911 自己的大致理解

    public static final int REMIN_REQUEST_CODE = 0x911; 自己理解为 一个静态常量,也就一个标识,自己目前主要在2个地方常用到 OnActivityRes ...

最新文章

  1. 图论(九)最小生成树-Kruskal算法
  2. 计算机科学课程体系核心内容,计算机科学教育的课程体系之研究
  3. [FreeBSD]x86地址映射实例
  4. 什么是jsf_为什么应该避免JSF
  5. python作用域——LEGB规则
  6. Eureka心跳续约机制
  7. 数据库 一致性读当前读
  8. Zookeeper脑图
  9. 哈佛结构 Linux,哈佛结构与冯诺依曼结构区别
  10. word段落居中的快捷键_Word一分钟完成人员名单排版,这方法又快又好!
  11. 宗成庆《统计自然语言处理》 目录的思维导图
  12. JUCE框架教程(3)—— Component ClassGraphics入门
  13. 幼儿园数学目标_幼儿园数学教育的总目标包括哪些
  14. 【论文笔记-5】Spatial Transformer Networks(STN)
  15. 从威胁到整合,容器将改变openstack的未来?
  16. 7-154 置点不动产——认真学习,努力工作买买房子吧
  17. 解析USGS网站页面中的地震空间数据
  18. 利用傅里叶变换获取低频和高频部分图像
  19. 电商项目超详细测试点整理(一)
  20. 网站添加用户风险测评

热门文章

  1. Bugku,Reverse:马老师杀毒卫士
  2. Fighting-算法
  3. 理财众筹php源码,php众筹网站的程序源码哪里有比较完整的?
  4. 我们都已失去折腾的乐趣
  5. mysql 关键字 desc_MySQL的desc关键字作为了字段名称查询问题
  6. MATLAB中meshgrid函数用法
  7. Aix6.1 安装 java8
  8. 贺岁杯围棋争霸赛打响 系列赛事启幕潘晓婷等将亮相
  9. 计算机入门游戏,计算机DIY从入门到精通:不同用户怎么选择合适自己的CPU
  10. 尝试用Verilog驱动VGA