2位可以容纳4个可能的值
来源:互联网 发布:小老虎是什么网络用语 编辑:程序博客网 时间:2024/04/28 05:10
当您在2.1课中学习到基本的寻址和变量定义时,现代机器上的内存通常被组织成字节大小的单位,每个单元有一个唯一的地址。在这一点上,它是有用的认为记忆是一束分支或邮箱,我们可以把和检索信息,和变量作为访问这些分支或邮箱名称。
然而,这个比喻在一个方面是不太正确的-大多数变量实际上占用超过1字节的内存。因此,一个变量可以使用2,4,甚至8个连续的内存地址。一个变量使用的内存量是基于它的数据类型。幸运的是,因为我们通常通过变量名访问内存,而不是内存地址,编译器在很大程度上能够隐藏与我们不同大小的变量的工作细节。
有几个原因,它是有用的知道多少内存一个变量占用。
首先,一个变量占用的内存越多,它所能容纳的信息就越多。因为每个位只能容纳一个0或1,我们说位可以容纳2个可能的值。
然而,这个比喻在一个方面是不太正确的-大多数变量实际上占用超过1字节的内存。因此,一个变量可以使用2,4,甚至8个连续的内存地址。一个变量使用的内存量是基于它的数据类型。幸运的是,因为我们通常通过变量名访问内存,而不是内存地址,编译器在很大程度上能够隐藏与我们不同大小的变量的工作细节。
有几个原因,它是有用的知道多少内存一个变量占用。
首先,一个变量占用的内存越多,它所能容纳的信息就越多。因为每个位只能容纳一个0或1,我们说位可以容纳2个可能的值。
2位可以容纳4个可能的值:
以偏概全,变量N位可以容纳2N(2到N,通常也写了2 ^ N)的权力可能值。由于一个字节是8位,一个字节可以存储28(256)可能的值。
变量的大小限制了它可以存储的信息量-利用更多字节的变量可以容纳更广泛的值。当我们进入不同类型的变量时,我们将进一步解决这个问题。
第二,计算机有一个有限数量的自由内存。每当我们声明一个变量时,只要变量存在时,可用内存的一小部分。因为现代计算机有很多的内存,这往往不是一个问题,特别是如果只声明了一些变量。然而,对于需要大量变量的程序(如100000),使用1字节和8字节变量之间的差异可以是显着的。
然而,你可能在你的系统变量的大发现(尤其是int,这通常是4字节)。
C++的基本数据类型的大小
明显的下一个问题是“不同类型的数据类型的内存量是多少?“。你可能会惊讶地发现,一个给定的数据类型的大小是依赖于编译器和/或计算机体系结构!
C++保证基本数据类型都会有一个最小尺寸:
12345678910111213141516171819#include <iostream> int main(){ using namespace std; cout << "bool:\t\t" << sizeof(bool) << " bytes" << endl; cout << "char:\t\t" << sizeof(char) << " bytes" << endl; cout << "wchar_t:\t" << sizeof(wchar_t) << " bytes" << endl; cout << "char16_t:\t" << sizeof(char16_t) << " bytes" << endl; // C++11, may not be supported by your compiler cout << "char32_t:\t" << sizeof(char32_t) << " bytes" << endl; // C++11, may not be supported by your compiler cout << "short:\t\t" << sizeof(short) << " bytes" << endl; cout << "int:\t\t" << sizeof(int) << " bytes" << endl; cout << "long:\t\t" << sizeof(long) << " bytes" << endl; cout << "long long:\t" << sizeof(long long) << " bytes" << endl; // C++11, may not be supported by your compiler cout << "float:\t\t" << sizeof(float) << " bytes" << endl; cout << "double:\t\t" << sizeof(double) << " bytes" << endl; cout << "long double:\t" << sizeof(long double) << " bytes" << endl; return 0;}
0 0
- 2位可以容纳4个可能的值
- 自定义UIAlertView可以容纳多个按钮
- 判断某种特定类型可以容纳的最大值或最小值
- hidden类型的INPUT最多可以容纳多少字符
- eclipse 的1个workspace如何同时容纳2个编码不同的项目【Eclipse文件转码插件】
- 容纳40位数的n!值
- 吸血鬼数字(一个4位数字,可以拆分2个2位数数字的乘积,顺序不限。)
- ch8 对象的容纳
- 对象的容纳
- 8、对象的容纳
- 对象的容纳
- zoj 1041 Transmitters 判断一个可以移动的半圆最多可容纳的点的个数
- limits.h_判断某种特定类型可以容纳的最大值或最小值
- Redis中String类型的Value最大可以容纳数据长度
- Redis中String类型的Value最大可以容纳数据长度
- 4位十六进制转为2进制可以任意位的输入
- 使用MultiBootUSB制作容纳多个Linux的启动U盘
- 122345这6个数字,输出它所有可能的组合;要求4不能在第3位,3和5不能相连。
- bzoj 2733: [HNOI2012]永无乡(splay+启发式合并)
- 毛超帅 js-面试中的快速排序______软件开发-JAVA
- MapReduce算法形式六:只有Map独自作战
- JAVA基础day05 面向对象思想 成员变量和方法 封装 构造方法和this的使用
- SELECT行列转换
- 2位可以容纳4个可能的值
- Java正则表达式
- 极光推送模拟上线的状态
- iOS开发代码规范总结
- CSRF: 不要低估了我的危害和攻击能力
- mysql批处理性能优化
- C++ 文件输入输出
- visual studio 皮肤
- try catch finally,try里有return,finally还执行么