几行代码道出了指针,类型转换,浮点存储,小端存储的本质
来源:互联网 发布:女生做春梦 知乎 编辑:程序博客网 时间:2024/05/29 15:34
先上代码:
想了好久都没有得到答案,在CSDN上问了该问题但是解释不是很好,所以经过不自己懈的思索,突然灵光一现,思路来了,
然后照着自己的思路研究了一番,收获很大,查了一些资料,终于知道了,分析如下:
首先我想说:对于什么类型的指针存储的都是一个地址,本质区别就是根据指针取相应的数据时被解释为相应的类型
所以double *p = reinterpret_cast<double *>(&a[0]);用double 指针指向了整型数组首地址,当用*p去得到相应地址中的数据时,
会把地址中的数据解释为double 类型,因此在进行 *p = 5时, 会把数组的前两个字节总共八个字节当作为double的5.0存储,
即:5.0的二进制存储为:(自行上网搜索浮点型的存储方式在此不多赘述或者我的前一篇博客http://blog.csdn.net/qq_36675830/article/details/76038639)
0(符号位) 10000000001(指数位) 0100000000000000000000000000000000000000000000000000(指数位)
又由于小端存储 所以 后三十二为位放在前面,前三十二位放在后面,即可得到 a[0] = 0, a[1] = 1075052544 ,a[3] = 3没有变 .
#include <iostream>using namespace std;int main(){int a[] = {1,2,3};double *p = reinterpret_cast<double *>(&a[0]);*p = 5;cout << a[0]<<" "<<a[1]<<" "<< a[2]<<endl ;return 0;}
想了好久都没有得到答案,在CSDN上问了该问题但是解释不是很好,所以经过不自己懈的思索,突然灵光一现,思路来了,
然后照着自己的思路研究了一番,收获很大,查了一些资料,终于知道了,分析如下:
首先我想说:对于什么类型的指针存储的都是一个地址,本质区别就是根据指针取相应的数据时被解释为相应的类型
所以double *p = reinterpret_cast<double *>(&a[0]);用double 指针指向了整型数组首地址,当用*p去得到相应地址中的数据时,
会把地址中的数据解释为double 类型,因此在进行 *p = 5时, 会把数组的前两个字节总共八个字节当作为double的5.0存储,
即:5.0的二进制存储为:(自行上网搜索浮点型的存储方式在此不多赘述或者我的前一篇博客http://blog.csdn.net/qq_36675830/article/details/76038639)
0(符号位) 10000000001(指数位) 0100000000000000000000000000000000000000000000000000(指数位)
又由于小端存储 所以 后三十二为位放在前面,前三十二位放在后面,即可得到 a[0] = 0, a[1] = 1075052544 ,a[3] = 3没有变 .
所以输出结果为:0 1075052544 3 意想不到吧,,真是想说一句小代码大智慧 哈哈哈
阅读全文
0 0
- 几行代码道出了指针,类型转换,浮点存储,小端存储的本质
- 浮点类型的存储
- 计算机中的大端存储小端存储的转换代码
- 浮点类型的存储方式
- 计算机中浮点数类型的存储
- float类型存储的浮点表示法
- 四极管:浮点数的存储和转换
- 类型转换:浮点数在内存中的存储方式以及(int&)a的意义
- [转载]强制类型转换 类型的本质 指针的本质 函数指针
- 浮点数存储小例子
- 存储的本质~
- 浮点数的存储
- 浮点型的存储
- 浮点数的存储
- 浮点数的存储
- 浮点数的存储
- 浮点数的存储
- 浮点数的存储
- eclipse importing maven projects 卡顿
- 欢迎使用CSDN-markdown编辑器
- 1097. Deduplication on a Linked List (25)
- vim
- Linux系统命令提示符学习总结
- 几行代码道出了指针,类型转换,浮点存储,小端存储的本质
- 由年和周获得日期
- Spring技术内幕——深入解析Spring架构与设计原理(三)数据库的操作实现
- HTML鼠标移到a上面让a变色
- cp: cannot create regular file `/usr/local/bin/orange': Text file busy
- 内存对齐以及位域
- 数组类型
- 石子合并(一)
- MyEclipse-Maven编写WordCount时问题总结