博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基本数据类型存储空间
阅读量:5067 次
发布时间:2019-06-12

本文共 1791 字,大约阅读时间需要 5 分钟。

转自: 

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程序

#include
void main() { printf("short: %d\n",sizeof(short)); printf("char: %d\n",sizeof(char)); printf("int: %d\n",sizeof(int)); printf("long: %d\n",sizeof(long)); printf("float: %d\n",sizeof(float)); printf("double: %d\n",sizeof(double)); printf("long double: %d\n",sizeof(long double)); }

运行结果:

2) C++程序

 
#include 
using namespace std; int main() { cout<<"bool: "<
<

运行结果:

3)Java程序

public class Test {           public static void main(String args[] ) {          System.out.println("byte: "+Byte.SIZE/8);          System.out.println("short: "+Short.SIZE/8);          System.out.println("char: "+Character.SIZE/8);          System.out.println("int: "+Integer.SIZE/8);          System.out.println("long: "+Long.SIZE/8);          System.out.println("folat: "+Float.SIZE/8);          System.out.println("double: "+Double.SIZE/8);      }  }

运行结果:

转载于:https://www.cnblogs.com/zhangxiaosong/p/3322582.html

你可能感兴趣的文章
基于grunt构建的前端集成开发环境
查看>>
MySQL服务读取参数文件my.cnf的规律研究探索
查看>>
java string(转)
查看>>
__all__有趣的属性
查看>>
写博客
查看>>
利用循环播放dataurl的视频来防止锁屏:NoSleep.js
查看>>
python3 生成器与迭代器
查看>>
java编写提升性能的代码
查看>>
ios封装静态库技巧两则
查看>>
Educational Codeforces Round 46 (Rated for Div. 2)
查看>>
Abstract Factory Pattern
查看>>
C# 实现Bresenham算法(vs2010)
查看>>
基于iSCSI的SQL Server 2012群集测试(一)--SQL群集安装
查看>>
list 容器 排序函数.xml
查看>>
Activity启动过程中获取组件宽高的五种方式
查看>>
java导出Excel表格简单的方法
查看>>
SQLite数据库简介
查看>>
利用堆实现堆排序&amp;优先队列
查看>>
Mono源码学习笔记:Console类(四)
查看>>
Android学习路线(十二)Activity生命周期——启动一个Activity
查看>>