当前位置: 首页 > 面试题库 >

为什么即使float和int的位数相同,它们的最大值也是如此不同?

仲孙信瑞
2023-03-14
问题内容

您可能知道,这两种类型都是32位。int只能容纳整数,而float还支持浮点数(如类型名称所示)。

那么怎么可能最大的值为int2 31,最大的值为 float3.4 * 10 38,而它们都是32位?

我认为int的最大容量应大于浮点数,因为它不会为浮点数节省内存,并且仅接受整数。在这种情况下,我很高兴为您提供解释。


问题答案:

您的直觉很正确地告诉您,一个 信息内容 中的 信息内容 不能超过另一个,因为它们都有32位。但这并不意味着我们不能使用这些位来 表示
不同的值。

假设我发明了两个新的数据类型uint4foo4uint4在标准的二进制表示中,使用4位表示整数

bits   value
0000       0
0001       1
0010       2
...
1111      15

但是foo4使用4位来表示这些值:

bits   value
0000       0
0001      42
0010     -97
0011       1
...
1110      pi
1111       e

现在foo4有一个更 广泛 的范围比数值uint4,尽管具有相同的位数!怎么样?因为有些uint4不能
用表示foo4,所以位映射中的“槽”可用于其他值。

这是相同的intfloat-它们可以从一组2倍的两个存储值32的值,只是 不同 组2个的32值。



 类似资料:
  • 问题内容: 根据MSDN BOL(在线图书)对SOME的描述| ANY(Transact-SQL), SOME和ANY是等效的。 使用某些| | | | | | | | ANY以使查询更具可读性。 但是 ,这是为什么在TSQL中有两个关键字具有完全相同的目的的 唯一 原因吗? 它们具有相同的功能是否有历史原因? 问题答案: 根据ANSI-92 SQL标准(搜索“ SOME”)。也在这里,文字 我怀

  • 编辑:修复//。。。和//下面代码中的错误注释显示了答案 对于JavaScript专家来说,这可能是一件愚蠢而显而易见的事情。。。但如果我能知道这是怎么回事,我会很生气的。 这是我的t.js: ... 和我的HTML: ...大致显示的是: 当我运行这个程序时,Chrome浏览器的开发者工具JavaScript控制台上没有显示任何内容。(在本次学习中,我看到了很多其他的错误活动……所以我知道它确实

  • 这个是题目, 这个是我不通过的测试用例:nums = [368,369,307,304,384,138,90,279,35,396,114,328,251,364,300,191,438,467,183] 下面是我的代码: 我运行上面的测试用例后,得到的结果是1044,我感觉没错啊,上面数组中的369,279,396的数位和是18,他们相加的结果是1044,而正确答案是835,即368,438的加

  • 我正在尝试比较两个char原语ch1和ch2。两者都被分配了值1,如下所示。 但是当使用“==”运算符进行比较时,它返回false,我不明白幕后是如何或发生了什么。

  • 问题内容: 如果我像这样设置div的CSS边距属性: 我得到一个div,它在页面中水平居中,就像这样。 但是,如果我将CSS更改为此: 我的div不在垂直居中。我并不需要知道一个解决方法(大量的解决方案都可以),但我想知道这种行为的原因。为什么上边距和下边距不能以相同的方式工作?我想念什么? 问题答案: 简短的答案是规格说明。 10.6.2内联替换元素,正常流中的块级替换元素,普通流中的“内联块”