float内存值定义域与浮点值对应表

2024-02-26 02:48

本文主要是介绍float内存值定义域与浮点值对应表,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

float内存存储采用IEEE754,小端机器上可用此结构体访问:

struct Float
{union{struct{unsigned int Mantissa : 23;unsigned int Exponent : 8;unsigned int Sign : 1;};struct {unsigned int withoutSign : 31;unsigned int : 1;};int _memoryInt = 0;float _float;};
};

float x = 1.0f;

Float& f = (Float&)x;

f.Mantissa = ....;

将为了查看整个float内存值定义域及对应浮点值,给人留下直观的印象,这里编写代码如下:
	std::vector<float> data;float v; (int&)v = 0;for (; (int&)v != 0xFFFFFFFF; ){if (-8.5070591730e+37 <= v && v <= -8.00000000f);else if (8.00000000f <= v && v <= 8.5070591730e+37);else if (-0.0625000000f <= v && v <= -2.35098898e-38f);else if (2.35098898e-38f <= v && v <= 0.0625000000f);elsedata.push_back(v);if (0x7F800000 < (int&)v && (int&)v < 0x7FFFFFFF)(int&)v = 0x7FFFFFFF;else if (0xFF800000 < (int&)v && (int&)v < 0xFFFFFFFF)(int&)v = 0xFFFFFFFF;else if (((int&)v & 0x7FFFFF) == 1 && (int&)v != 0xFF800001)(int&)v += 0x7FFFFE;else(int&)v += 1;}data.push_back(v);std::sort(data.begin(), data.end(), 
// 	[](float& a, float& b) { return a < b; });[](float a, float b) {bool isnanA = isnan(a), isnanB = isnan(b);if (isnanA || isnanB){if (!isnanB){return ((int&)a & 0x80000000) != 0;}if (!isnanA){return ((int&)b & 0x80000000) == 0; }if (((int&)a < 0) != ((int&)b < 0))return (int&)a < (int&)b;else //两nan符号相同return (((int&)a & 0x7FFFFF) < ((int&)b & 0x7FFFFF)) != ((int&)a < 0);}if ((int&)a == (int&)b)return false;else if (a < b)return true;else if (b < a)return false;elsereturn (int&)a < (int&)b;});int i = 0;for (float& f : data){printf("序号%3d 内存值%08x 阶%3d 浮点值%14g 科学%17.10e\n", ++i, (int&)f, ((int&)f & 0x7F800000) >> 23, f, f);}
序号  1 内存值ffffffff 阶255 浮点值          -nan 科学             -nan
序号  2 内存值ff800001 阶255 浮点值          -nan 科学             -nan
序号  3 内存值ff800000 阶255 浮点值          -inf 科学             -inf
序号  4 内存值ff7fffff 阶254 浮点值  -3.40282e+38 科学-3.4028234664e+38
序号  5 内存值ff000001 阶254 浮点值  -1.70141e+38 科学-1.7014120374e+38
序号  6 内存值ff000000 阶254 浮点值  -1.70141e+38 科学-1.7014118346e+38
序号  7 内存值feffffff 阶253 浮点值  -1.70141e+38 科学-1.7014117332e+38
序号  8 内存值fe800001 阶253 浮点值  -8.50706e+37 科学-8.5070601871e+37
序号  9 内存值fe800000 阶253 浮点值  -8.50706e+37 科学-8.5070591730e+37
序号 10 内存值c0ffffff 阶129 浮点值            -8 科学-7.9999995232e+00
序号 11 内存值c0800001 阶129 浮点值            -4 科学-4.0000004768e+00
序号 12 内存值c0800000 阶129 浮点值            -4 科学-4.0000000000e+00
序号 13 内存值c07fffff 阶128 浮点值            -4 科学-3.9999997616e+00
序号 14 内存值c0000001 阶128 浮点值            -2 科学-2.0000002384e+00
序号 15 内存值c0000000 阶128 浮点值            -2 科学-2.0000000000e+00
序号 16 内存值bfffffff 阶127 浮点值            -2 科学-1.9999998808e+00
序号 17 内存值bf800001 阶127 浮点值            -1 科学-1.0000001192e+00
序号 18 内存值bf800000 阶127 浮点值            -1 科学-1.0000000000e+00
序号 19 内存值bf7fffff 阶126 浮点值            -1 科学-9.9999994040e-01
序号 20 内存值bf000001 阶126 浮点值          -0.5 科学-5.0000005960e-01
序号 21 内存值bf000000 阶126 浮点值          -0.5 科学-5.0000000000e-01
序号 22 内存值beffffff 阶125 浮点值          -0.5 科学-4.9999997020e-01
序号 23 内存值be800001 阶125 浮点值         -0.25 科学-2.5000002980e-01
序号 24 内存值be800000 阶125 浮点值         -0.25 科学-2.5000000000e-01
序号 25 内存值be7fffff 阶124 浮点值         -0.25 科学-2.4999998510e-01
序号 26 内存值be000001 阶124 浮点值        -0.125 科学-1.2500001490e-01
序号 27 内存值be000000 阶124 浮点值        -0.125 科学-1.2500000000e-01
序号 28 内存值bdffffff 阶123 浮点值        -0.125 科学-1.2499999255e-01
序号 29 内存值bd800001 阶123 浮点值       -0.0625 科学-6.2500007451e-02
序号 30 内存值81000000 阶  2 浮点值  -2.35099e-38 科学-2.3509887016e-38
序号 31 内存值80ffffff 阶  1 浮点值  -2.35099e-38 科学-2.3509885615e-38
序号 32 内存值80800001 阶  1 浮点值  -1.17549e-38 科学-1.1754944910e-38
序号 33 内存值80800000 阶  1 浮点值  -1.17549e-38 科学-1.1754943508e-38
序号 34 内存值807fffff 阶  0 浮点值  -1.17549e-38 科学-1.1754942107e-38
序号 35 内存值80000001 阶  0 浮点值   -1.4013e-45 科学-1.4012984643e-45
序号 36 内存值80000000 阶  0 浮点值            -0 科学-0.0000000000e+00
序号 37 内存值00000000 阶  0 浮点值             0 科学 0.0000000000e+00
序号 38 内存值00000001 阶  0 浮点值    1.4013e-45 科学 1.4012984643e-45
序号 39 内存值007fffff 阶  0 浮点值   1.17549e-38 科学 1.1754942107e-38
序号 40 内存值00800000 阶  1 浮点值   1.17549e-38 科学 1.1754943508e-38
序号 41 内存值00800001 阶  1 浮点值   1.17549e-38 科学 1.1754944910e-38
序号 42 内存值00ffffff 阶  1 浮点值   2.35099e-38 科学 2.3509885615e-38
序号 43 内存值01000000 阶  2 浮点值   2.35099e-38 科学 2.3509887016e-38
序号 44 内存值3d800001 阶123 浮点值        0.0625 科学 6.2500007451e-02
序号 45 内存值3dffffff 阶123 浮点值         0.125 科学 1.2499999255e-01
序号 46 内存值3e000000 阶124 浮点值         0.125 科学 1.2500000000e-01
序号 47 内存值3e000001 阶124 浮点值         0.125 科学 1.2500001490e-01
序号 48 内存值3e7fffff 阶124 浮点值          0.25 科学 2.4999998510e-01
序号 49 内存值3e800000 阶125 浮点值          0.25 科学 2.5000000000e-01
序号 50 内存值3e800001 阶125 浮点值          0.25 科学 2.5000002980e-01
序号 51 内存值3effffff 阶125 浮点值           0.5 科学 4.9999997020e-01
序号 52 内存值3f000000 阶126 浮点值           0.5 科学 5.0000000000e-01
序号 53 内存值3f000001 阶126 浮点值           0.5 科学 5.0000005960e-01
序号 54 内存值3f7fffff 阶126 浮点值             1 科学 9.9999994040e-01
序号 55 内存值3f800000 阶127 浮点值             1 科学 1.0000000000e+00
序号 56 内存值3f800001 阶127 浮点值             1 科学 1.0000001192e+00
序号 57 内存值3fffffff 阶127 浮点值             2 科学 1.9999998808e+00
序号 58 内存值40000000 阶128 浮点值             2 科学 2.0000000000e+00
序号 59 内存值40000001 阶128 浮点值             2 科学 2.0000002384e+00
序号 60 内存值407fffff 阶128 浮点值             4 科学 3.9999997616e+00
序号 61 内存值40800000 阶129 浮点值             4 科学 4.0000000000e+00
序号 62 内存值40800001 阶129 浮点值             4 科学 4.0000004768e+00
序号 63 内存值40ffffff 阶129 浮点值             8 科学 7.9999995232e+00
序号 64 内存值7e800000 阶253 浮点值   8.50706e+37 科学 8.5070591730e+37
序号 65 内存值7e800001 阶253 浮点值   8.50706e+37 科学 8.5070601871e+37
序号 66 内存值7effffff 阶253 浮点值   1.70141e+38 科学 1.7014117332e+38
序号 67 内存值7f000000 阶254 浮点值   1.70141e+38 科学 1.7014118346e+38
序号 68 内存值7f000001 阶254 浮点值   1.70141e+38 科学 1.7014120374e+38
序号 69 内存值7f7fffff 阶254 浮点值   3.40282e+38 科学 3.4028234664e+38
序号 70 内存值7f800000 阶255 浮点值           inf 科学              inf
序号 71 内存值7f800001 阶255 浮点值           nan 科学              nan
序号 72 内存值7fffffff 阶255 浮点值           nan 科学              nan
另外重新按内存值排序得到如下输出
序号  1 内存值80000000 阶  0 浮点值            -0 科学-0.0000000000e+00
序号  2 内存值80000001 阶  0 浮点值   -1.4013e-45 科学-1.4012984643e-45
序号  3 内存值807fffff 阶  0 浮点值  -1.17549e-38 科学-1.1754942107e-38
序号  4 内存值80800000 阶  1 浮点值  -1.17549e-38 科学-1.1754943508e-38
序号  5 内存值80800001 阶  1 浮点值  -1.17549e-38 科学-1.1754944910e-38
序号  6 内存值80ffffff 阶  1 浮点值  -2.35099e-38 科学-2.3509885615e-38
序号  7 内存值81000000 阶  2 浮点值  -2.35099e-38 科学-2.3509887016e-38
序号  8 内存值bd800001 阶123 浮点值       -0.0625 科学-6.2500007451e-02
序号  9 内存值bdffffff 阶123 浮点值        -0.125 科学-1.2499999255e-01
序号 10 内存值be000000 阶124 浮点值        -0.125 科学-1.2500000000e-01
序号 11 内存值be000001 阶124 浮点值        -0.125 科学-1.2500001490e-01
序号 12 内存值be7fffff 阶124 浮点值         -0.25 科学-2.4999998510e-01
序号 13 内存值be800000 阶125 浮点值         -0.25 科学-2.5000000000e-01
序号 14 内存值be800001 阶125 浮点值         -0.25 科学-2.5000002980e-01
序号 15 内存值beffffff 阶125 浮点值          -0.5 科学-4.9999997020e-01
序号 16 内存值bf000000 阶126 浮点值          -0.5 科学-5.0000000000e-01
序号 17 内存值bf000001 阶126 浮点值          -0.5 科学-5.0000005960e-01
序号 18 内存值bf7fffff 阶126 浮点值            -1 科学-9.9999994040e-01
序号 19 内存值bf800000 阶127 浮点值            -1 科学-1.0000000000e+00
序号 20 内存值bf800001 阶127 浮点值            -1 科学-1.0000001192e+00
序号 21 内存值bfffffff 阶127 浮点值            -2 科学-1.9999998808e+00
序号 22 内存值c0000000 阶128 浮点值            -2 科学-2.0000000000e+00
序号 23 内存值c0000001 阶128 浮点值            -2 科学-2.0000002384e+00
序号 24 内存值c07fffff 阶128 浮点值            -4 科学-3.9999997616e+00
序号 25 内存值c0800000 阶129 浮点值            -4 科学-4.0000000000e+00
序号 26 内存值c0800001 阶129 浮点值            -4 科学-4.0000004768e+00
序号 27 内存值c0ffffff 阶129 浮点值            -8 科学-7.9999995232e+00
序号 28 内存值fe800000 阶253 浮点值  -8.50706e+37 科学-8.5070591730e+37
序号 29 内存值fe800001 阶253 浮点值  -8.50706e+37 科学-8.5070601871e+37
序号 30 内存值feffffff 阶253 浮点值  -1.70141e+38 科学-1.7014117332e+38
序号 31 内存值ff000000 阶254 浮点值  -1.70141e+38 科学-1.7014118346e+38
序号 32 内存值ff000001 阶254 浮点值  -1.70141e+38 科学-1.7014120374e+38
序号 33 内存值ff7fffff 阶254 浮点值  -3.40282e+38 科学-3.4028234664e+38
序号 34 内存值ff800000 阶255 浮点值          -inf 科学             -inf
序号 35 内存值ff800001 阶255 浮点值          -nan 科学             -nan
序号 36 内存值ffffffff 阶255 浮点值          -nan 科学             -nan
序号 37 内存值00000000 阶  0 浮点值             0 科学 0.0000000000e+00
序号 38 内存值00000001 阶  0 浮点值    1.4013e-45 科学 1.4012984643e-45
序号 39 内存值007fffff 阶  0 浮点值   1.17549e-38 科学 1.1754942107e-38
序号 40 内存值00800000 阶  1 浮点值   1.17549e-38 科学 1.1754943508e-38
序号 41 内存值00800001 阶  1 浮点值   1.17549e-38 科学 1.1754944910e-38
序号 42 内存值00ffffff 阶  1 浮点值   2.35099e-38 科学 2.3509885615e-38
序号 43 内存值01000000 阶  2 浮点值   2.35099e-38 科学 2.3509887016e-38
序号 44 内存值3d800001 阶123 浮点值        0.0625 科学 6.2500007451e-02
序号 45 内存值3dffffff 阶123 浮点值         0.125 科学 1.2499999255e-01
序号 46 内存值3e000000 阶124 浮点值         0.125 科学 1.2500000000e-01
序号 47 内存值3e000001 阶124 浮点值         0.125 科学 1.2500001490e-01
序号 48 内存值3e7fffff 阶124 浮点值          0.25 科学 2.4999998510e-01
序号 49 内存值3e800000 阶125 浮点值          0.25 科学 2.5000000000e-01
序号 50 内存值3e800001 阶125 浮点值          0.25 科学 2.5000002980e-01
序号 51 内存值3effffff 阶125 浮点值           0.5 科学 4.9999997020e-01
序号 52 内存值3f000000 阶126 浮点值           0.5 科学 5.0000000000e-01
序号 53 内存值3f000001 阶126 浮点值           0.5 科学 5.0000005960e-01
序号 54 内存值3f7fffff 阶126 浮点值             1 科学 9.9999994040e-01
序号 55 内存值3f800000 阶127 浮点值             1 科学 1.0000000000e+00
序号 56 内存值3f800001 阶127 浮点值             1 科学 1.0000001192e+00
序号 57 内存值3fffffff 阶127 浮点值             2 科学 1.9999998808e+00
序号 58 内存值40000000 阶128 浮点值             2 科学 2.0000000000e+00
序号 59 内存值40000001 阶128 浮点值             2 科学 2.0000002384e+00
序号 60 内存值407fffff 阶128 浮点值             4 科学 3.9999997616e+00
序号 61 内存值40800000 阶129 浮点值             4 科学 4.0000000000e+00
序号 62 内存值40800001 阶129 浮点值             4 科学 4.0000004768e+00
序号 63 内存值40ffffff 阶129 浮点值             8 科学 7.9999995232e+00
序号 64 内存值7e800000 阶253 浮点值   8.50706e+37 科学 8.5070591730e+37
序号 65 内存值7e800001 阶253 浮点值   8.50706e+37 科学 8.5070601871e+37
序号 66 内存值7effffff 阶253 浮点值   1.70141e+38 科学 1.7014117332e+38
序号 67 内存值7f000000 阶254 浮点值   1.70141e+38 科学 1.7014118346e+38
序号 68 内存值7f000001 阶254 浮点值   1.70141e+38 科学 1.7014120374e+38
序号 69 内存值7f7fffff 阶254 浮点值   3.40282e+38 科学 3.4028234664e+38
序号 70 内存值7f800000 阶255 浮点值           inf 科学              inf
序号 71 内存值7f800001 阶255 浮点值           nan 科学              nan
序号 72 内存值7fffffff 阶255 浮点值           nan 科学              nan


这篇关于float内存值定义域与浮点值对应表的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/747504

相关文章

golang内存对齐的项目实践

《golang内存对齐的项目实践》本文主要介绍了golang内存对齐的项目实践,内存对齐不仅有助于提高内存访问效率,还确保了与硬件接口的兼容性,是Go语言编程中不可忽视的重要优化手段,下面就来介绍一下... 目录一、结构体中的字段顺序与内存对齐二、内存对齐的原理与规则三、调整结构体字段顺序优化内存对齐四、内

Linux内存泄露的原因排查和解决方案(内存管理方法)

《Linux内存泄露的原因排查和解决方案(内存管理方法)》文章主要介绍了运维团队在Linux处理LB服务内存暴涨、内存报警问题的过程,从发现问题、排查原因到制定解决方案,并从中学习了Linux内存管理... 目录一、问题二、排查过程三、解决方案四、内存管理方法1)linux内存寻址2)Linux分页机制3)

Java循环创建对象内存溢出的解决方法

《Java循环创建对象内存溢出的解决方法》在Java中,如果在循环中不当地创建大量对象而不及时释放内存,很容易导致内存溢出(OutOfMemoryError),所以本文给大家介绍了Java循环创建对象... 目录问题1. 解决方案2. 示例代码2.1 原始版本(可能导致内存溢出)2.2 修改后的版本问题在

大数据小内存排序问题如何巧妙解决

《大数据小内存排序问题如何巧妙解决》文章介绍了大数据小内存排序的三种方法:数据库排序、分治法和位图法,数据库排序简单但速度慢,对设备要求高;分治法高效但实现复杂;位图法可读性差,但存储空间受限... 目录三种方法:方法概要数据库排序(http://www.chinasem.cn对数据库设备要求较高)分治法(常

Redis多种内存淘汰策略及配置技巧分享

《Redis多种内存淘汰策略及配置技巧分享》本文介绍了Redis内存满时的淘汰机制,包括内存淘汰机制的概念,Redis提供的8种淘汰策略(如noeviction、volatile-lru等)及其适用场... 目录前言一、什么是 Redis 的内存淘汰机制?二、Redis 内存淘汰策略1. pythonnoe

MybatisGenerator文件生成不出对应文件的问题

《MybatisGenerator文件生成不出对应文件的问题》本文介绍了使用MybatisGenerator生成文件时遇到的问题及解决方法,主要步骤包括检查目标表是否存在、是否能连接到数据库、配置生成... 目录MyBATisGenerator 文件生成不出对应文件先在项目结构里引入“targetProje

Java内存泄漏问题的排查、优化与最佳实践

《Java内存泄漏问题的排查、优化与最佳实践》在Java开发中,内存泄漏是一个常见且令人头疼的问题,内存泄漏指的是程序在运行过程中,已经不再使用的对象没有被及时释放,从而导致内存占用不断增加,最终... 目录引言1. 什么是内存泄漏?常见的内存泄漏情况2. 如何排查 Java 中的内存泄漏?2.1 使用 J

关于Java内存访问重排序的研究

《关于Java内存访问重排序的研究》文章主要介绍了重排序现象及其在多线程编程中的影响,包括内存可见性问题和Java内存模型中对重排序的规则... 目录什么是重排序重排序图解重排序实验as-if-serial语义内存访问重排序与内存可见性内存访问重排序与Java内存模型重排序示意表内存屏障内存屏障示意表Int

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

NameNode内存生产配置

Hadoop2.x 系列,配置 NameNode 内存 NameNode 内存默认 2000m ,如果服务器内存 4G , NameNode 内存可以配置 3g 。在 hadoop-env.sh 文件中配置如下。 HADOOP_NAMENODE_OPTS=-Xmx3072m Hadoop3.x 系列,配置 Nam