各数据类型的大小

一、Java

各数据类型的字节数与操作系统的位数无关。

数据类型 字节数
byte 1
short 2
char 2
float 4
int 4
long 8
double 8
boolean 特殊

boolean比较特殊:他理论上只占一个比特,即1/8字节。但实际上,他占1个或者4个字节。

boolean a = true;    // a 占4个字节
boolean[] b = new boolean[10];    // b 的元素各占1个字节

注意:①Java中没有sizeof()。

   ②Java不允许用0代表false,这一点也与C不同。



二、C/C++

sizeof()求字节数。

数据类型 32位系统 64位系统
char 1 1
short 2 2
int 4 4
float 4 4
long 4 8
long int 4 8
long long 8 8
double 8 8
long double 8 16

32位操作系统下,指向任意数据类型的指针,都是占4个字节。

64位操作系统下,指向任意数据类型的指针,都是占8个字节。

另外,32位和64位的定义在于:CPU一次处理数据的能力是32位还是64位,亦即最大寻址空间。

32位的最大寻址空间为2的32次方,也就是4G,也就是说32位系统的处理器最大只支持到4G内存。

时间: 2024-11-16 16:17:31

各数据类型的大小的相关文章

【ThinkingInC++】8、说明符,探讨数据类型的大小

/** * 功能:说明符,探讨数据类型的大小 * 时间:2014年8月10日11:02:02 * 作者:cutter_point */ #include<iostream> using namespace std; int main() { char c; unsigned char cu; short int is; short iis; unsigned short int isu; unsigned short iisu; int i; unsigned int iu; long int

Oracle 12C -- 扩展varchar2、nvarchar2、和raw数据类型的大小限制

在12C中,varchar2,nvarchar2和raw类型从之前的4K扩展到32K 升级到12C后,参数max_string_size默认值是standard,即不改变varchar2.nvarchar2.和raw数据类型的大小限制,和11g保持一致. SQL> show parameter max_string_size NAME TYPE VALUE ------------------------------------ ----------- ---------------------

C/C++之数据类型的大小

不同数据类型的大小 数据类型 大小 char 1 int 4 short 2 long 4 bool 1 float 4 double 8 typename* 4 typename[n] n char* = "123-n" string = "123-n" n+1 struct 根据结构体最大的数据类型大小为单元 以结构体定义变量的顺序为准 进行内存分配和对齐 原文地址:https://www.cnblogs.com/fr-ruiyang/p/9599383.htm

【转帖】不同平台数据类型的大小

这些事跨平台编程导致的: https://www.cnblogs.com/pigerhan/p/3210255.html 我一直以为 int类型不一致呢 现在发现是long 大小不一致. 一.数据类型特别是int相关的类型在不同位数机器的平台下长度不同.C99标准并不规定具体数据类型的长度大小,只规定级别.作下比较: 16位平台 char         1个字节8位short        2个字节16位int            2个字节16位long         4个字节32位指针 

[知识笔记]Java 基本数据类型的大小、取值范围、默认值

数据类型 大小(字节) 范围 默认值 boolean 1/8(1bit) true/false false byte 1 -128~127 (-2^7~2^7-1) 0 short 2 -32768~32767 (-2^15~2^15-1) 0 char 2 \u0000-\uffff (0-2^16-1) 0 int 4 -2147483648~2147483647 (-2^31~2^31-1) 0 float 4   0.0f long 8 -2^63~2^63-1 0 double 8  

转 32位64位操作系统基本数据类型字节大小

http://blog.csdn.net/huyisu/article/details/17604983 int型字长问题: ① C/C++规定int字长和机器字长相同: ② 操作系统字长和机器字长未必一致: ③ 编译器根据操作系统字长来定义int字长: 由上面三点可知,在一些没有操作系统的嵌入式计算机系统上,int的长度与处理器字长一致:有操作 系统时,操作系统的字长与处理器的字长不一定一致,此时编译器根据操作系统的字长来定义int字长:" 比如你在64位机器上运行DOS16系统,那么所有fo

32位64位操作系统基本数据类型字节大小

nt型字长问题: ① C/C++规定int字长和机器字长相同: ② 操作系统字长和机器字长未必一致: ③ 编译器根据操作系统字长来定义int字长: 由上面三点可知,在一些没有操作系统的嵌入式计算机系统上,int的长度与处理器字长一致:有操作 系统时,操作系统的字长与处理器的字长不一定一致,此时编译器根据操作系统的字长来定义int字长:" 比如你在64位机器上运行DOS16系统,那么所有for dos16的C/C++编译器中int都是16位的;在64位机器上 运行win32系统,那么所有for w

基本数据类型范围大小&amp;&amp;字节大小

char -128 ~ +127 short -32767 ~ + 32768 unsigned short 0 ~ 65536 int -2147483648 ~ +2147483647 unsigned int 0 ~ 4294967295 long == intlong long -9223372036854775808 ~ +9223372036854775807 double 1.7 * 10^308 unsigned int 0-4294967295 long long的最大值:92

02:浮点型数据类型存储空间大小

描述 分别定义float,double类型的变量各一个,并依次输出它们的存储空间大小(单位:字节). 输入无.输出一行,两个整数,分别是两个变量的存储空间大小,用一个空格隔开.样例输入 (无) 样例输出 (不提供) #include<stdio.h> int main() { float a; double b; printf ("%d %d",sizeof(a),sizeof(b)); return 0; } 或者 #include<stdio.h> int

:其他基本数据类型存储空间大小

总时间限制:  1000ms 内存限制:  65536kB 描述 分别定义bool,char类型的变量各一个,并依次输出它们的存储空间大小(单位:字节). 输入 无. 输出 一行,两个整数,分别是两个变量的存储空间大小,用一个空格隔开. 样例输入 (无) 样例输出 (不提供) #include<stdio.h> int main() { bool a; char b; printf("%d %d",sizeof(a),sizeof(b)); return 0; }