基本数据类型存储空间
转自:http://blog.csdn.net/shuishanga/article/details/7313512#
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<stdio.h> 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 <iostream> using namespace std; int main() { cout<<"bool: "<<sizeof(bool)<<endl; cout<<"short: "<<sizeof(short)<<endl; cout<<"char: "<<sizeof(char)<<endl; cout<<"int: "<<sizeof(int)<<endl; cout<<"long: "<<sizeof(long)<<endl; cout<<"float: "<<sizeof(float)<<endl; cout<<"double: "<<sizeof(double)<<endl; cout<<"long double: "<<sizeof(long double)<<endl; return 0; }
运行结果:
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
基本数据类型存储空间相关推荐
- 信息学奥赛一本通 1018:其他数据类型存储空间大小 | OpenJudge NOI 1.2 03
[题目链接] ybt 1018:其他数据类型存储空间大小 OpenJudge NOI 1.2 03:其他基本数据类型存储空间大小 [题目考点] sizeof运算符 sizeof可以求某常量.变量或类型 ...
- 信息学奥赛一本通 1017:浮点型数据类型存储空间大小 | OpenJudge NOI 1.2 02
[题目链接] ybt 1017:浮点型数据类型存储空间大小 OpenJudge NOI 1.2 02:浮点型数据类型存储空间大小 [题目考点] 1. sizeof运算符 sizeof可以求某常量.变量 ...
- 信息学奥赛一本通 1016:整型数据类型存储空间大小 | OpenJudge NOI 1.2 01
[题目链接] ybt 1016:整型数据类型存储空间大小 OpenJudge NOI 1.2 01:整型数据类型存储空间大小 [题目考点] 1. sizeof运算符 sizeof可以求某常量.变量或类 ...
- 信息学奥赛一本通(1018:其他数据类型存储空间大小)
1018:其他数据类型存储空间大小 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 36770 通过数: 31958 [题目描述] 分别定义bool,cha ...
- 信息学奥赛一本通(1017:浮点型数据类型存储空间大小)
1017:浮点型数据类型存储空间大小 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 40826 通过数: 32913 [题目描述] 分别定义float,d ...
- 信息学奥赛一本通(1016:整型数据类型存储空间大小)
1016:整型数据类型存储空间大小 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 50393 通过数: 34940 [题目描述] 分别定义int,shor ...
- 1017:浮点型数据类型存储空间大小
1017:浮点型数据类型存储空间大小 时间限制: 1000 ms 内存限制: 65536 KB [题目描述] 分别定义float,double类型的变量各一个,并依次输出它们的存储空间大小(单位:字节 ...
- NOI-1.2(01) 整型数据类型存储空间大小
01:整型数据类型存储空间大小 描述 分别定义int,short类型的变量各一个,并依次输出它们的存储空间大小(单位:字节). 输入 无. 输出 一行,两个整数,分别是两个变量的存储空间大小,用一个空 ...
- NOI-1.2(02) 浮点型数据类型存储空间大小
02:浮点型数据类型存储空间大小 描述 分别定义float,double类型的变量各一个,并依次输出它们的存储空间大小(单位:字节). 输入 无. 输出 一行,两个整数,分别是两个变量的存储空间大小, ...
最新文章
- Metro Win8风格的按钮(Filp翻转)
- Hibernate一级缓存常用API
- 行业指数动量策略+akshare
- 55个好习惯可令世界更美好(2)
- 用Log Explorer恢复数据的基本操作
- C# XML文件读取
- 如何运用大数据舆情监测分析软件监测分析舆情的方法技巧
- Win10 安装 .NetFramework 4.7 (SourceTree)
- 获取百度网盘提取码的两种方法
- android手机运行win10,兼容安卓 Win10手机竟然能直接运行APK
- js获取h5链接中的参数(亲测可用)
- go的内存管理和内存逃逸
- 新浪微博分享链接+图片
- opencv 基于ORB特征点图像拼接
- 《平衡掌控者 游戏数值战斗设计》学习笔记(五)物品掉落
- go mod查看包依赖关系
- 用python制作田字格_2分钟学会在Word中制作田字格 米字格 书法练字再也不用买本子了...
- dz安装教程php,DZ论坛网站安装,设置步骤
- 获取日期的时间戳问题、前端倒计时不准问题
- 如何让网页上的失效图片,显示默认缺省图片