`

基本数据类型存储空间

 
阅读更多

基本数据类型存储空间

基本数据类型是学习语言中最先接触到的知识,就C、C++、Java而言,它们有很多类似点,但不同点更值得注意。下面单就存储空间方面进行对比和整理。

1.      存储容量单位

        计算机以“位”序列存储数据,每一“位”存储0或1。这里的“位”便是存储信息的一个单位:bit。

        字节:Byte 。1 Byte= 8 bits

        字:“字”由若干个字节构成,字的位数叫做字长,字长就是说字所对应的二进制数的长度。不同的机器有不同的字长。例如一台8位机,它的1个字就等于1个字 节,字长为8位。同理:一台16位机,那么,它的1个字就由2个字节构成,字长为16位;而一台32位机,它的1个字就等于4个字节,字长为32位。

2.      基本数据类型存储空间是否确定

        在C和C++中,基本数据类型所占的存储空间是不确定的, 这与编译环境或者机器硬件架构有关。在C++中,一般地,short类型为半个机器字长,int类型为一个机器字长,而long 类型为一个或两个机器字长。(在32位机器中,int 和long类型通常字长是相同的)。一般float 用一个字来表示,double用两个字来表示——摘自《C++Primer》。

        在Java中,有8种基本数据类型,它们所占的存储空间是确定的,而这种存储空间大小的不变性是是Java程序比其他语言程序更具可移植性的原因之一。另外Java中所有数据类型都是有符号的。

3.      基本数据类型存储空间

下面在32位win7系统中,分别用Visual Studio 编译C,C++程序,用eclipse编译Java程序。运行结果整理如下:


结果分析:

        对于都存在的数据类型,在测试环境中有两种数据类型存储空间是不同的,上面用蓝色标出。 

测试:(注:C和C++中整型变量存在有符号数和无符号数,Java中都是有符号的,但由于在C和C++中对于某种特定类型而言,有无符号只是取值范围不同而已,并不影响存储空间大小,故测试中采用隐含的形式,即有符号数)

1)  C程序

  1. #include<stdio.h>  
  2. void main()  
  3. {  
  4.     printf("short: %d\n",sizeof(short));  
  5.     printf("char: %d\n",sizeof(char));  
  6.     printf("int: %d\n",sizeof(int));  
  7.     printf("long: %d\n",sizeof(long));  
  8.     printf("float: %d\n",sizeof(float));  
  9.     printf("double: %d\n",sizeof(double));  
  10.     printf("long double: %d\n",sizeof(long double));  
  11. }  

运行结果:


2) C++程序

  1. #include <iostream>  
  2. using namespace std;  
  3. int main()  
  4. {  
  5.     cout<<"bool: "<<sizeof(bool)<<endl;  
  6.     cout<<"short: "<<sizeof(short)<<endl;  
  7.     cout<<"char: "<<sizeof(char)<<endl;  
  8.     cout<<"int: "<<sizeof(int)<<endl;  
  9.     cout<<"long: "<<sizeof(long)<<endl;  
  10.     cout<<"float: "<<sizeof(float)<<endl;  
  11.     cout<<"double: "<<sizeof(double)<<endl;  
  12.     cout<<"long double: "<<sizeof(long double)<<endl;  
  13.     return 0;  
  14. }  

运行结果:


3)Java程序

  1. public class Test {       
  2.     public static void main(String args[] ) {  
  3.         System.out.println("byte: "+Byte.SIZE/8);  
  4.         System.out.println("short: "+Short.SIZE/8);  
  5.         System.out.println("char: "+Character.SIZE/8);  
  6.         System.out.println("int: "+Integer.SIZE/8);  
  7.         System.out.println("long: "+Long.SIZE/8);  
  8.         System.out.println("folat: "+Float.SIZE/8);  
  9.         System.out.println("double: "+Double.SIZE/8);  
  10.     }  
  11. }  
 
运行结果:
分享到:
评论

相关推荐

    1.2编程基础之变量定义赋值及转换(10题)

    2018/07/20 周五 13:23 176 03其他基本数据类型存储空间大小.cpp 2018/07/20 周五 13:23 476 04填空:类型转换1.cpp 2018/07/20 周五 13:23 175 05填空:类型转换2.cpp 2018/07/20 周五 13:22 225 06浮点数相零舍入....

    java基本数据类型.docx

    在Java中,基本数据类型是指原始...这些基本数据类型在Java中用于存储不同类型的数据值,它们分别占用不同的内存空间,并具有不同的取值范围。在Java中,基本数据类型是直接存储在栈内存中的,因此它们的访问速度很快。

    数据结构的基本概念和术语抽象数据类型的表示与实现算法及算法设计要求第四课:算法效率的度量和存储空间需求

    第二课:抽象数据类型的表示与实现 第三课: 第四课:算法效率的度量和存储空间需求 第五课:线性表的类型定义 第六课:线性表的顺序表示和实现 第七课:实验一 线性表的顺序存储实验 第八课:线性表的链式...

    Java程序设计基础:基本数据类型.pptx

    基本数据类型 目录 课程导入 掌握Java基本数据类型 掌握直接量的表示 计算机的基本作用就是做运算。运算的数据可以由用户输入、从文件获得。 我们可以把数据进行归类,整数、小数、一串字符、单个字符。 数据类型 ...

    【JavaScript源代码】详解JS变量存储深拷贝和浅拷贝.docx

    详解JS变量存储深拷贝和浅拷贝 ...变量类型与存储空间 栈内存和堆内存基本数据类型引用类型图解存储空间引用类型的赋值 栈内存和堆内存 基本数据类型 引用类型 图解存储空间 引用类型的赋值 深

    JavaScript数据类型之基本类型和引用类型的值

    ECMAScript变量包含两种不同数据类型的值:基本类型值和引用类型值。基本类型值是简单的数据段,而引用类型值指那些可能由多个值构成的对象。 在将一个值赋给变量时,解析器必须确定这个值是基本类型还是引用类型。...

    ORACLE中的数据类型.doc

    虽然ORACLE8i也允许你自定义数据类型,但是它们是最基本的数据类型。在下面的文章中你将了解到他们在oracle 中的用法、限制以及允许值。 l Character 数据类型 Character 数据类型用来存储字母数字型数据。当你...

    c语言课后习题

    结构体类型的每个成员的数据类型必须是基本类型 B. 结构体类型的每个成员的数据类型都相同,这一点与数组一样 C. 在声明结构体类型时,其成员的数据类型不能是结构体本身 D. 以上说法都不对 【答】D (5)在定义一...

    python 基本数据类型占用内存空间大小的实例

    今天小编就为大家分享一篇python 基本数据类型占用内存空间大小的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    JavaScript类型系统之基本数据类型与包装类型

    其中,javascript基本数据类型包括Undefined、Null、Boolean、Number和String五种  引用类型由于其值的大小会改变,所以不能将其存放在栈中,否则会降低变量查询速度,因此其存储在堆(heap)中,存储在变量处的值是...

    数组和数据存储arry

    数组的元素可以是任何数据类型,包括基本类型(如整数、浮点数)和复合类型(如对象、结构体)。 数组的大小通常在创建时确定,并且在大多数编程语言中是固定不变的。 数据存储方式: 内存存储:程序在运行时使用...

    Java4Android开发教程(五)java的基本数据类型特征

    java的数据类型分为基本数据类型和引用数据类型。   基本数据类型分为数值型、字符型(char)、布尔型(boolean)   数值型变量   1、整数型 类型 占用存储空间 表示范围 byte 1字节Byte -128~...

    C语言试题集

    专业的C语言试题。 C语言考试。 计算机二级C语言专业复习资料。是学生的专用宝典。

    vb数据类型

    数据: 计算机能够处理数值、文字、声音、图形、图像等信息,均称为数据。 数据类型: ...VB的基本数据类型: 数值型数据 (主要数据类型) 日期型 字节型 货币型 逻辑型 字符串型 对象型 变体型

    数据结构课程设计指导书

    逻辑设计的结果应写出每个抽象数据类型的定义(包括数据结构的描述和每个基本操作的功能说明),各个主要模块的算法,并画出模块之间的调用关系图; 3.详细设计:定义相应的存储结构并写出各函数的伪码算法。在这个...

    12.第十二章 自定义数据类型.txt

    结构体(structure)又叫结构,是一种构造类型,由若干成员构成,成员可以是一个基本数据类型或一个构造类型。 12.1.1 结构体声明 声明结构体的形式: struct 结构名 { 成员表列; }; 成员表列由若干个成员...

    数据结构习题解答(C语言版)

    数据、数据元素、数据对象、数据结构、存储结构和数据类型等概念术语的确定含义;抽象数据类型的定义、表示和实现方法;描述算法的类C语言;算法设计的基本要求以及从时间和空间角度分析算法的方法。 二、学习要点 1...

    C++零基础(数据类型)

    基本数据类型 1 布尔型 (以bool表示) 取值只能是fasle(假)或true(真) 2 字符型(以char表示) 通常用来存放的ASCII码, 3 整型(以int表示) 用short来修饰表示短整型 4 实型(单精度浮点型以float表示 `双...

    int字节 interger区别

    复杂类型和基本类型的内存模型本质上是不一样的,简单数据类型的存储原理是这样的:所有的简单数据类型不存在“引用”的概念,简单数据类型都是直接存储在内存中的内存栈上的,数据本身的值就是存储在栈空间里面,而...

    大数据导论(1)——“大数据”相关概念、5V特征、数据类型.pdf

    ⼤数据导论(1)——"⼤数据"相关概念、5V特征、数据类型 在过去的⼗⼏年中,各个领域都出现了⼤规模的数据增长,⽽各类仪器、通信⼯具以及集成电路⾏业的发展也为海量数据的产⽣与存储提供 了软件条件与硬件⽀持。...

Global site tag (gtag.js) - Google Analytics