首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

:float、double在不同的系统中占用的位数一样吗

2013-07-04 
在线等:float、double在不同的系统中占用的位数一样吗?请问它们是不是在所有位数的系统中、在所有不同类型的

在线等:float、double在不同的系统中占用的位数一样吗?
请问它们是不是在所有位数的系统中、在所有不同类型的系统、在所有编译器中,占用的位数都是4和8?还是不同情况不一样?

16位系统       A操作系统       a编译器
……
32位系统       A操作系统       a编译器
32位系统       A操作系统       b编译器
32位系统       B操作系统       a编译器
32位系统       B操作系统       b编译器
……

[解决办法]
这个跟编译器有关,所有类型需要编译器转义为机器码,其中的解释定义由编译器完成
[解决办法]
32位系统以上都一样,float 4,double 8,之前的系统不大清楚
[解决办法]
64位在32位基础上乘以2.
[解决办法]
这个是语言的数据类型定义吧,C语言定义是4Byte和8Byte , 以后要是硬出个X语言定义Double为32Byte也没办法,编译器也只能照着定义来翻译了
[解决办法]
IEEE二进制浮点数算术标准(IEEE 754)是1980年代以来最广泛使用的浮点数运算标准,为许多CPU与浮点运算器所采用。这个标准定义了表示浮点数的格式(包括负零-0)与反常值(denormal number)),一些特殊数值(无穷(Inf)与非数值(NaN)),以及这些数值的“浮点数运算符”;它也指明了四种数值舍入规则和五种例外状况(包括例外发生的时机与处理方式)。
IEEE 754规定了四种表示浮点数值的方式:单精确度(32位)、双精确度(64位)、延伸单精确度(43比特以上,很少使用)与延伸双精确度(79比特以上,通常以80比特实做)。只有32位模式有强制要求,其他都是选择性的。大部分编程语言都有提供IEEE浮点数格式与算术,但有些将其列为非必需的。例如,IEEE 754问世之前就有的C语言,现在有包括IEEE算术,但不算作强制要求(C语言的float通常是指IEEE单精确度,而double是指双精确度)。
[解决办法]

引用:
这个跟编译器有关,所有类型需要编译器转义为机器码,其中的解释定义由编译器完成

++
[解决办法]
这个跟编译器有关

有的编译器中 float = double = 4 bytes
[解决办法]
不要迷信书、考题、老师、回帖;
要迷信CPU、编译器、调试器、运行结果。
并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。
任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实!

有人说一套做一套,你相信他说的还是相信他做的?
其实严格来说这个世界上古往今来所有人都是说一套做一套,不是吗?

不要写连自己也预测不了结果的代码!

[解决办法]
这个取决于CPU的支持和具体编译器
[解决办法]
依赖于编译器的实现

热点排行