现代计算机上的双倍和浮点内存分配

double and float memory allocation on modern comptuers

本文关键字:内存 分配 计算机      更新时间:2023-10-16

我正在学习双精度和浮点数以及区别是什么。我运行了一段代码,如下所示,以查看根据我添加的整数和小数点分配了多少内存,但似乎无论我键入多少个整数,我总是为浮点数和双精度数获得 8 字节的大小。我了解到 float 占用 4 个字节,但我开始认为在现代计算机上情况并非如此,也许过去就是这种情况,今天我们可以互换使用它们而不会影响结果?我在这里错过了什么吗?

// C++ program to sizes of data types
#include<iostream>
using namespace std;
int main()
{
cout << "Size of int : " << sizeof(11111111111111111) << " bytes" << endl;
cout << "Size of float : " << sizeof(11111111111111111111111111111111111111111111111111111111111.1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111) << " bytes" <<endl;
cout << "Size of double : " << sizeof(.11111111111111111111111111111111111111111111111111111) << " bytes" << endl;

return 0;
}

在两行上打印double的大小,因为两个浮点文本都具有double的类型。如果要创建float文本,请向其追加f1.0f。这具有float的类型 .如果不向其追加f,它将具有double的类型。

或者你可以简单地使用sizeof(float).