C++ 现代计算机上的双存储器和浮点存储器分配
我正在学习双人和浮动以及两者的区别。我运行了下面发布的一段代码,以查看根据我添加的整数和小数点的数量分配了多少内存,但似乎无论我键入多少整数,浮点和double的大小都是8字节。我了解到float占用4个字节,但我开始认为在现代计算机上情况并非如此,也许这是过去的情况,今天我们可以互换使用它们而不影响结果?我是不是遗漏了什么C++ 现代计算机上的双存储器和浮点存储器分配,c++,C++,我正在学习双人和浮动以及两者的区别。我运行了下面发布的一段代码,以查看根据我添加的整数和小数点的数量分配了多少内存,但似乎无论我键入多少整数,浮点和double的大小都是8字节。我了解到float占用4个字节,但我开始认为在现代计算机上情况并非如此,也许这是过去的情况,今天我们可以互换使用它们而不影响结果?我是不是遗漏了什么 // C++ program to sizes of data types #include<iostream> using namespace
// 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;
}
对数据类型的大小的代码> //C++程序
#包括
使用名称空间std;
int main()
{
无法在两行上打印
double
的大小,因为两个浮点文本的类型都是double
。如果要创建float
文本,请在其上附加f
:1.0f
。这是float
的类型。如果不向其附加f
,它将具有双重的
或者只需使用
sizeof(float)
您可以在两行上打印double
的大小,因为两个浮点文本的类型都是double
。如果要创建float
文本,请在其上附加一个f
文本:1.0f
。这是float
的类型。如果您不在其上附加f
,它将没有他使用了double
的类型
或者你可以简单地使用
sizeof(float)
为什么不使用类似sizeof((float)1)
的东西来最小化交叉问题呢?好的,我试过了,它现在读取4个字节。有什么区别吗?为什么我最后需要一个f?编译器是否将float转换为double?它不是“转换”浮点:在这种情况下,从来没有浮点。默认情况下,浮点文本是一个double
。如果你想要float
文本,你需要通过添加f
后缀来表示。为什么不能使用类似sizeof((float)1)的东西呢
尽量减少交叉问题..?好的,我试过了,它现在读取4个字节。区别是什么?为什么我在结尾需要一个f?编译器是否将浮点转换为双精度?它不是“转换”浮点:在这种情况下从来没有浮点。默认情况下,浮点文本是一个双精度
。如果你想要浮点
文本,你需要添加f
后缀。