C++ 现代计算机上的双存储器和浮点存储器分配

C++ 现代计算机上的双存储器和浮点存储器分配,c++,C++,我正在学习双人和浮动以及两者的区别。我运行了下面发布的一段代码,以查看根据我添加的整数和小数点的数量分配了多少内存,但似乎无论我键入多少整数,浮点和double的大小都是8字节。我了解到float占用4个字节,但我开始认为在现代计算机上情况并非如此,也许这是过去的情况,今天我们可以互换使用它们而不影响结果?我是不是遗漏了什么 // C++ program to sizes of data types #include<iostream> using namespace

我正在学习双人和浮动以及两者的区别。我运行了下面发布的一段代码,以查看根据我添加的整数和小数点的数量分配了多少内存,但似乎无论我键入多少整数,浮点和double的大小都是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;
 }
对数据类型的大小的代码> //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
后缀。