C/C++ 类型转换
来源:互联网 发布:profili软件介绍 编辑:程序博客网 时间:2024/05/21 12:50
C/C++ 类型转换
——————————————
有关&a、(int&)a的问题
#include <stdio.h>#include <iostream>using namespace std;int main() { float a = 1.0f; cout<<(int)a<<endl; // 将a转换为整型 cout<< &a <<endl; // a的地址 cout<< (int&)a <<endl; // 见注解 return 0;}
程序的运行结果如下:
注解:
(int&)a 相当于将浮点数a的地址的前sizeof(int)个字节当成int型的数据输出。
float a = 1.0f在内存中的表示是0x3f800000,当(int&)a强制转换时,会把内存值0x3f800000当作int型输出,所以结果为1065353216(0x3f800000的十进制表示)
那为什么float a = 1.0f在计算机中的表示是0x3f800000呢?
这是由于浮点数在计算机中的表示方式有三部分构成:
符号位:0代表正数,1代表负数
指数位:存储科学计数法中的指数部分,采用移位的方式(127 + 指数)
尾数位:存储尾数部分
即:符号位 + 指数位 + 尾数位。以1.0f而言,
符号位:0
指数位:01111111(127 + 0的二进制)
尾数:(00000000000000000000000)
连起来就是111111100000000000000000000000
就是十进制的1065353216
相关内容的扩展可见:
http://blog.csdn.net/hzw05103020/article/details/50626076
阅读全文
0 0
- <C/C++> 类型转换
- C/C++:类型转换
- C类型转换
- C#.NET 类型转换
- 类型转换(C#)
- C指针类型转换
- 类型转换--c语言
- C语言类型转换
- C语言类型转换
- C/C++类型转换
- C语言类型转换
- C++_类型转换
- objective-c 类型转换
- objective-c类型转换
- 标准C 类型转换
- c类型转换
- C类型转换
- c类型转换char2short
- Java程序执行远程linux命令
- CJOJ 2484 函数最小值 / Luogu 2085 函数最小值
- 利用nginx和docker实现一个简单负载均衡
- 触摸事件的传递过程
- HDU4734 F(x)[数位DP]
- C/C++ 类型转换
- JS本地面向对象Math数字的常使用方法
- objective-c内存管理规则
- NineOldAndroids动画兼容库的使用-ViewHelper
- JAVA数据类型和MySql数据类型对应表
- php高性能无限级别分类方法(非递归)
- Spring AOP详解 一.前言 在以前的项目中,很少去关注spring aop的具体实现与理论,只是简单了解了一下什么是aop具体怎么用,看到了一篇博文写得还不错,就转载来学习一下,博
- 注意力机制(Attention Mechanism)在自然语言处理中的应用
- 采用ajax提交POST数据的例子