java和c/c++ 数据类型长度的比较
1. c语言中的整数类型有char, short, int, long等几种, 下面是c语言对每种数据类型长度的规定:
(a). short和long类型的长度不相同
(b). int类型通常同具体机器的物理字长相同
(c). short通常是16bits, int通常是16bits or 32bits每种编译器可以根据硬件的不同*确定, 但是short和int必须最少是16bits, 而long类型必须最少是32bits, 并且short必须比int和long类型要短。
2. sizeof() 运算符返回的是一种数据类型中所包含的字节数(bytes), ansic规定sizeof(char)必须返回1,当sizeof作用于数组时, 返回的是数组中所有成员所占的字节数(注意并不是数组中成员的个数), 当sizeof()作用于结构体和公用体时,返回的不仅仅是数据成员总的字节数, 还包括编译器为了实现字节对其而填充的那些字节。
以前写程序也隐隐约约的懂得这些规则,但是一直以为char类型必须是8bits的,但是最近做了一个嵌入式dsp项目,编译器手册上明明写着char类型就是16bits的,无奈翻出"the c programming language"一查才发现ansi c对于char类型的长度并没有作硬性规定。以前写程序不太注意数据类型的可移植性, 这次项目中用到的以前的代码都要重新检查数据类型长度的问题。
c++数据类型长度问题:
一、字节和字长
字节,八位就是一个字节,是固定概念。字长是指计算机一次能处理的二进制数据的长度,是一个非固定的概念。例如,8位计算机的字长为8,即一个字节, 32位计算机的字长位32,即4个字节,同理,64位计算机的字长为64,即8字节。
二、c++中的数据类型
1、字符型数据char,该类型始终是一个字节长,即8位。
2、整形int、短整型short和长整形long。通常int为一个字长,short为半个字长,long为一个或2个字长(在32位机器中为一个字长)。
3、浮点型float、双精度double、和长双精度long double,分别表示单精度浮点数 双精度浮点数和扩展精度的浮点数值。典型情况下,float 为一个字,double是两个字,long double为三个或四个字。
java中各数据类型的长度:
boolean 这个试编译环境而定
byte 1个字节
short 2个字节
char 2个字节
int 4个字节
long 8个字节
float 4个字节
double 8个字节
上一篇: java版数独游戏核心算法(一)
下一篇: ASP.Net巧用窗体母版页实例
推荐阅读
-
java和c/c++ 数据类型长度的比较
-
C/C++与Java各数据类型所占字节数的详细比较
-
Lua中table内建排序与C/C++/Java/php/等内排序算法的排序效率比较
-
JavaEE基础day02 1.定义Java中的变量 四类八种 2.变量定义和使用的注意事项 3.数据类型的转换、强制数据类型转换4.算数运算符、比较运算符、逻辑运算符、赋值运算符、三元运算符
-
为什么在美国的cs编程入门课大多有java和python。而在国内首先学习的语言是c/c++?
-
深入解析C++和JAVA的字符串
-
自定义的Troop
泛型类( c++, java和c#)的实现代码 -
Java和C++通过new创建的对象有何区别?
-
C++和Java从编译到运行的过程区别
-
C/C++编程笔记:数据类型中 float 和 double 的区别!细节讲解