变量之间的差异是显著的.

正如您在第2.1课中学到的--基本寻址和变量定义,现代机器上的内存通常被组织成字节大小的单元,每个单元具有唯一的地址.。在这一点上,它是有用的认为记忆是一束分支或邮箱,我们可以把和检索信息,和变量作为访问这些分支或邮箱名称。
然而,这种类比在一个方面并不十分正确,大多数变量实际上占用了超过1字节的内存.。因此,一个变量可以使用2,4,甚至连续8个内存地址.。变量使用的内存量取决于它的数据类型.。幸运的是,因为我们通常通过变量名而不是内存地址访问内存,编译器在很大程度上能够隐藏与我们使用不同大小变量的细节.。
有几个原因可以知道变量占用了多少内存.。
首先,变量占用的内存越多,它可以容纳的信息越多。因为每个位只能持有0或1,我们说,比特可以容纳2个可能的值。

2位可以容纳4个可能的值:

td::cout << "bool:\t\t" << sizeof(bool) << " bytes" << std::endl;
    std::cout << "char:\t\t" << sizeof(char) << " bytes" << std::endl;
    std::cout << "wchar_t:\t" << sizeof(wchar_t) << " bytes" << std::endl;
    std::cout << "char16_t:\t" << sizeof(char16_t) << " bytes" << std::endl; // C++11, may not be supported by your compiler
    std::cout << "char32_t:\t" << sizeof(char32_t) << " bytes" << std::endl; // C++11, may not be supported by your compiler
    std::cout << "short:\t\t" << sizeof(short) << " bytes" << std::endl;
    std::cout << "int:\t\t" << sizeof(int) << " bytes" << std::endl;
    std::cout << "long:\t\t" << sizeof(long) << " bytes" << std::endl;
    std::cout << "long long:\t" << sizeof(long long) << " bytes" << std::endl; // C++11, may not be supported by your compiler
    std::cout << "float:\t\t" << sizeof(float) << " bytes" << std::endl;
    std::cout << "double:\t\t" << sizeof(double) << " bytes" << std::endl;
    std::cout << "long double:\t" << sizeof(long double) << " bytes" << std::endl;

o概括,变量N位可以容纳2n(2到N,通常也写了2 ^ N)的权力可能值。因为一个字节是8位,一个字节可以存储28(256)可能的值。
变量的大小限制了它可以存储的信息量--利用更多字节的变量可以容纳更广泛的值.。我们将进一步解决这个问题,当我们进入不同类型的变量。
其次,计算机有有限数量的自由内存。每当我们声明一个变量时,只要这个变量存在,这个自由内存的一小部分就被使用了.。因为现代计算机有大量的内存,这通常不是问题,特别是如果只声明一些变量.。然而,对于需要大量变量(如100000)的程序,使用1字节和8字节变量之间的差异是显著的.。
然而,你可能在你的系统变量的大发现(尤其是int,这通常是4字节)。
C++的基本数据类型的大小
下一个问题是“不同数据类型的变量需要多少内存?“。您可能会惊奇地发现给定数据类型的大小依赖于编译器和/或计算机体系结构.!
C++保证基本数据类型都会有一个最小尺寸:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据分析技术:数据差异显著性检验 数据分析技术:数据差异显著性检验 数据差异显著性检验是的重要技术之⼀。然⽽,如何正确选择检验⽅法是很多初学者困惑和容易出现错误的地⽅。下⾯为⼤家总结⼀ 下数据差异显著性检验的⽅法及适⽤范围。 显著性检验 ⾸先需要理解什么是数据差异显著性检验。在数据分析中,如果仅仅基于个案(某个数据)的采样数据是没有很强说服⼒的。例如: ⼀种新药,不能因为⼀个⼈使⽤后,效果良好就⼤⾯积地推⼴,⽽应该基于⼤规模的样本判定这种新药是否有效,这就需要验证在⼤规模样 本中实验组数据是否优于对照组数据,⼆者是否存在显著性的差别。显著性检验的理论就是在这种具体需求下提出来的。 所谓数据差异显著性检验,是⾯向两组或多组数据的⼀种⽅法,其⽬的是对两组数据之间是否存在显著差异进⾏判断。⼀般来说, 两组观测数据不可能完全相同,肯定存在或多或少的差异,但研究者关⼼的是两组数据的差异是否显著。如果差异显著,就可以说两组数据 之间存在显著差异;否则,它们之间差异显著,甚⾄可以说是⽆差别。 数据差异显著性可以运⽤在各类科学研究中,例如,在教学研究中,研究者可以研究某种教学法是否有效。在医学领域,可以研究某 种新药是否对患者有效等等。 数据的分类 数据类型的不同,将直接影响到差异显著性检验的使⽤⽅法。数据主要可以分成三类:定距变量,定序变量和定类变量。 定类变量:根据定性的原则区分总体中个案类别的变量。定类变量的值只能把研究对象分类,只能决定研究对象是同类或不同类,例 如:性别分为男性和⼥性两类;出⽣地区分为农村、城市、城镇三类;民族背景分为汉、蒙、回、苗、壮、藏、维吾尔等;婚姻状况分为未 婚、已婚、分居、离婚、丧偶等类。 定序变量:区别同⼀类的个案中等级次序的变量变量的值能把研究对象排列⾼低或⼤⼩,它是⽐定类变量层次更⾼的变量,也具有定类 变量的特点,例如:⽂化程度可以分为⼤学、⾼中、初中、⼩学、⽂盲;⼯⼚规模可以分为⼤、中、⼩;年龄可以分为⽼、中、青。这些变 量的值,既可以区分异同,也可以区别⾼低或⼤⼩。但是,各个定序变量的值之间没有确切的间隔距离,⽐如⼤学究竟⽐⾼中⾼出多少,是 没有确切的尺度来测量的。 定距变量:区别同⼀类别个案中等级次序及其距离的变量。它除了包括定序变量的特性外,还能确切测量出个案之间⾼低、⼤⼩次序之 间的距离。 定距变量是最常见、区分度最⾼的变量,这类变量可以被求取均值、⽅差、标准差和标准误等描述性信息,在中最受欢迎,被称为⾼测 度数据。定序变量和定类变量则因为数据的特点,通常⽆法求取它们的均值和⽅差等信息,被称为低测度数据,需要采⽤与定距变量不同的 分析技术。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值