现代计算机上的双倍和浮点内存分配
double and float memory allocation on modern comptuers
我正在学习双精度和浮点数以及区别是什么。我运行了一段代码,如下所示,以查看根据我添加的整数和小数点分配了多少内存,但似乎无论我键入多少个整数,我总是为浮点数和双精度数获得 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
文本,请向其追加f
:1.0f
。这具有float
的类型 .如果不向其追加f
,它将具有double
的类型。
或者你可以简单地使用sizeof(float)
.
相关文章:
- Win32编译器选项和内存分配
- 多个文件的内存分配错误"在抛出 'std :: bad_alloc' what (): std :: bad_alloc 的实例后终止调用" [C++]
- 当需要超过16GB的连续内存时,内存分配失败
- 尝试摆脱任何堆内存分配
- 以下代码执行哪种内存分配(动态或静态)?
- 开放 CV 中的动态内存分配,用于视频处理
- 为什么类和 main() 函数中也有动态内存分配
- 使用 NTAllocateVirtualMemory 和 GetProcAddress 的内存分配问题不起作用
- C++:矢量分配器行为、内存分配和智能指针
- 介于 [固定数组] 和 [带内存分配的指针] 之间的性能
- Linux C++ 中的页面对齐内存分配
- 整数内存分配/释放
- 将内存分配返回值强制转换为 TYPE 数组
- C++程序什么都不做,但瓦尔格林德显示内存分配
- 给定特定内存地址的数组的动态内存分配
- 如何完成内存分配
- 我刚刚了解了C++中的动态内存分配
- 在先前调用 string::find 后添加内存分配和内存集会导致它返回 npos.为什么?
- 对于堆上的页面对齐内存分配是否有任何优化或不同的 API?
- 无法删除布尔动态内存分配