`

java,c,c++ 语言之间基本数据类型的比较

 
阅读更多


原文:http://eric-gcm.iteye.com/blog/1166399

java中只有 int型 而没有 unsigned integer 和 signed之分。
java语言基本数据类型

在JAVA中一共有八种基本数据类型,他们分别是

byte、short、int、long、float、double、char、boolean

整型

其中byte、short、int、long都是表示整数的,只不过他们的取值范围不一样

byte的取值范围为-128~127,占用1个字节(-2的7次方到2的7次方-1)

short的取值范围为-32768~32767,占用2个字节(-2的15次方到2的15次方-1)

int的取值范围为(-2147483648~2147483647),占用4个字节(-2的31次方到2的31次方-1)

long的取值范围为(-9223372036854774808~9223372036854774807),占用8个字节(-2的63次方到2的63次方-1)

可以看到byte和short的取值范围比较小,而long的取值范围太大,占用的空间多,基本上int可以满足我们的日常的计算了,而且int也是使用的最多的整型类型了。

在通常情况下,如果JAVA中出现了一个整数数字比如35,那么这个数字就是int型的,如果我们希望它是byte型的,可以在数据后加上大写的 B:35B,表示它是byte型的,同样的35S表示short型,35L表示long型的,表示int我们可以什么都不用加,但是如果要表示long型 的,就一定要在数据后面加“L”。

浮点型

float和double是表示浮点型的数据类型,他们之间的区别在于他们的精确度不同

float 3.402823e+38 ~ 1.401298e-45(e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方)占用4个字节

double 1.797693e+308~ 4.9000000e-324 占用8个字节

double型比float型存储范围更大,精度更高,所以通常的浮点型的数据在不声明的情况下都是double型的,如果要表示一个数据是float型的,可以在数据后面加上“F”。

浮点型的数据是不能完全精确的,所以有的时候在计算的时候可能会在小数点最后几位出现浮动,这是正常的。

boolean型(布尔型)

这个类型只有两个值,true和false(真和非真)

boolean t = true;

boolean f = false;

char型(文本型)

用于存放字符的数据类型,占用2个字节,采用unicode编码,它的前128字节编码与ASCII兼容

字符的存储范围在\u0000~\uFFFF,在定义字符型的数据时候要注意加' ',比如 '1'表示字符'1'而不是数值1,

char c = ' 1 ';

我们试着输出c看看,System.out.println(c);结果就是1,而如果我们这样输出呢System.out.println(c+0);

结果却变成了49。

如果我们这样定义c看看

char c = ' \u0031 ';输出的结果仍然是1,这是因为字符'1'对应着unicode编码就是\u0031

char c1 = 'h',c2 = 'e',c3='l',c4='l',c5 = 'o';

System.out.print(c1);System.out.print(c2);System.out.print(c3);System.out.print(c4);Sytem.out.print(c5);

String

在前面我们看到过这样的定义:

String s = "hello";

System.out.println(s);跟上面的5条语句组合起来的效果是一样的,那么String是个什么呢?String是字符串,它不是基本数据类型,它是一个类。


 c语言数据类型

1.整型数据类型
C定义了5种整型数据类型。
整型数据类型表

序号 类型名称 说明 字节数 取值范围
1 signed char 有符号的单字节整数类型 1 -128~+127
2 short int 短整型 2 -32768~+32767
3 int 整型 4 -2147438648~+2147438647
4 long int 长整型 4 -2147438648~+2147438647
5 long long int 长长整型 8 -9223372036854775808~+-9223372036854775807

2.无符号整数类型
对应有符号类型,还有无符号整数类型。
无符号整数类型表

序号 类型名称 字节数 取值范围
1 unsigned char 1 0~255
2 unsign short int 2 0~65535
3 unsigned int 4 0~4294967295
4 unsigned long int 4 0~4294967295
5 unsign long long int 8 0~18446744073709551615

3.整型常量 
整型常量是指用以表示整型数值的常量,分为短整型(short int)、整型(int)、长整型(long int )和长长整型(long long int)四种。C默认整型(int)。 各种类型整型常量进制表示表(后缀不区分大小写)

序号 数据类型 八进制 十进制 十六进制
1 整型 0112 74 0x4a
2 长整型(l) 0112l 74l 0x4al
3 长长整型(ll) 0112ll 74ll 0x4all
4 无符号整型(u) 0112u 74u 0x4au
5 无符号长整型(ul) 0112ul 74ul 0x4aul
6 无符号长长整型(ull) 0112ull 74ull 0x4aull

4.字符数据类型 
C语言中字符型数据只有一种,即char型数据。一般也把char直接称为字符型。字符型占用内存空间最少,一般占用一个字节,存储在char类型变量的整数可以表示为有符号或无符号的值,这取决于编译器。

5.字符变量
字符变量是用于存储字符型数值的变量。字符型变量也分为两种:有符号和无符号型。

6.浮点型数据类型
C语言定义了三种浮点数据类型:
•float,单精度
•double,双精度
•long double,长双精度
C标准中对不同类型的浮点数有不同的规定,编译器不同或硬件条件不同,字节长度也不相同。

浮点型的字节长度、精度、数量级范围和输出输入格式表

序号 数据类型 字节长度 精度 数量级范围 printf和scanf格式
1 float(f) 4 7 -38~38 %f
2 double 8 约16 -308~308 %f
3 long double(1) 12 约19 -4932~4932 %llf

7.浮点型精度
浮点型精度从低到高排列为float、double和long long double。

8.浮点型的存储方式
浮点型数值以科学计数法的表示形式存储在内存中。浮点型的内存形式包含三个部分:
1)符号位
符号位浮点型的符号位只有一位,为最高位。该位为1,表示负数,该位为0,为非负数。
2)指数位
浮点型的指数位以补码形式存储,是科学计数法的指数部分。
3)基数位
基数位是浮点型的最后一位,这个位决定数值的精度。
浮点型储存分段表

序号 数据类型 符号位 指数位 基数位 偏差值
1 float 1 8 23 127
2 double 1 11 52 1023
3 long double 1 15 64 16383


 c++语言基本数据类型

C++基本数据类型有字符型(char)、整数类型(int)、浮点型(float)、双精度型(double)和无值类型(void),下表给出各种基本类型和内存中的位数和表示数值的范围(对于字符型存储的是ASCII码):

基本数据类型

类型 类型名 位数 范围
字符型 char 8 -128 ------ 127
整型 int 16 -32768 ------ 32767
浮点型 float 32 3.4E-38 ------ 3.4E+38
双精度型 double 64 1.7E-308 ------ 1.7E+308
无值类型 void 0 0

    类型名前可以加修饰符(void类型除外),修饰符有 signed(带符号的)、 unsigned(无符号的)、 short(短的)和 long(长的)。signed 和 unsigned 用于字符型或整型,short 和 long 可用于整型,还可用于双精度型,如下表所示:

基本数据类型和修饰符

类型 类型名 位数 范围
字符型 char 8 -128 ------ 127
signed char 8 -128 ------ 127
unsigned char 8  0 ------ 255
整型 int 16 -32768 ------ 32767
signed int 16 -32768 ------ 32767
unsigned int 16   0 ------ 65535
short int 16 -32768 ------ 32767
signed short int 16 -32768 ------ 32767
unsigned short int 16   0 ------ 65535
long int 32 -2,147,483,648 ---- 2,147,483,647
signed long int 32 -2,147,483,648 ---- 2,147,483,647
unsigned long int 32   0 ----------------4,294,967,295
浮点型 float 32 3.4E-38 ------ 3.4E+38
双精度型 double 64 1.7E-308 ------ 1.7E+308
long double 80 3.4E-4932 ------ 1.1E+4932

    当用 signed 、unsigned 、short 和 long 修饰 int 时,int 可省略。

字符型实际上是一个字节的整型 ,浮点型和双精度型表示实数。

注:不同编译系统,整数的存储长度不同。对于16位的编译系统,int为2字节;而对于32位的编译系统,int为4字节。可以用sizeof运算符测试。如:

cout<<sizeof(int)<<endl;

输出结果是字节数。

分享到:
评论

相关推荐

    Java语言与C++语言的对比分析.pdf

    C++语言的构成基础包括指针、数组、基本数据类型、表示符和关键字等。这些基础元素构成了C++语言的强大功能,使其在系统编程、图形处理、游戏开发等多个领域被广泛采用。C++语言的数据类型繁多,从简单的整型、字符...

    数据结构 C C++ JAVA

    C、C++ 和 Java 都是广泛用于实现数据结构的编程语言,每种语言都有其独特的特性和优势。 在C语言中,由于其低级特性,可以直接对内存进行操作,这使得C语言在实现数据结构时更加灵活,但同时也需要开发者具有较高...

    C++库封装JNI接口-实现java调用c++

    在跨平台的软件开发中,有时我们需要...这个过程需要理解Java和C++之间的数据类型转换,以及如何在两种语言之间传递参数和返回值。熟练掌握JNI可以极大地扩展Java应用的功能,尤其是在需要高性能计算或利用硬件特性时。

    c++,java跨语言通信

    3. **序列化与反序列化**:由于C++和Java的数据结构和类型不完全相同,因此在通信过程中,数据需要进行序列化和反序列化。Java可以使用`java.io.Serializable`接口以及相关类进行序列化,C++则可以借助第三方库如...

    C、C++、JAVA数据结构与算法电子书

    C、C++和Java都是广泛使用的编程语言,它们在处理数据结构和算法时各有特点。以下是对这三种语言在数据结构与算法方面的一些关键知识点的详细阐述: 1. **数据结构**: - **数组**:基本的数据结构,用于存储同...

    java与c++通过socket通信

    Java和C++之间的Socket...总之,Java和C++通过Socket通信涉及到网络编程的基本概念、数据类型转换、错误处理以及跨平台兼容性等多个方面。理解并熟练掌握这些知识点,可以有效地实现两个不同语言的程序间的高效通信。

    主流编程语言比较(C,C++,JAVA等。。)

    本文将对主流编程语言进行比较,包括 C、C++、Java 等语言,并对每种语言的特性、优点和缺点进行了详细的分析。 一、语言特性对比 | 语言 | 类型 | 静态/动态 | 支持面向过程 | 支持基于对象 | 支持范型 | 支持...

    OOP语言技术比较:Java,C++,Object Pascal[1]

    标题和描述均提到了“OOP语言技术比较:Java,C++,Object Pascal”,这表明文章将对这三种面向对象编程(OOP)语言进行深入的技术对比分析。OOP是现代软件开发的核心概念之一,它通过封装、继承、多态等特性提供了...

    Java语言如何调用C++语言编写的本地方法

    在Java程序中调用用C++语言编写的本地方法,是通过Java本地接口(JNI)实现的,JNI是Java提供的一套标准编程接口,用于Java代码和本地应用程序或库之间的交互。本地库通常是用C或C++编写的动态链接库(在Windows上是...

    CPlus_to_Java_Converter;C++转java工具

    1. **数据类型转换**:C++中的指针在Java中通常对应于引用。转换器需要将C++的指针操作转换为Java的引用操作,同时处理内存分配和释放的差异,因为Java的垃圾回收机制会自动管理内存。 2. **面向对象的差异**:C++...

    The diffenences bwtween Java and C++ (JAVA与C++区别)

    C++是一种广泛应用的计算机编程语言,它支持静态数据类型检查,并兼容多种编程范式。C++支持过程化编程、数据抽象、面向对象编程以及泛型图标等多种编程风格。起初,C++作为C语言的增强版本出现,从C类型的起点不断...

    C/C++服务器与Java客户端进行socket通信

    它们提供了方便的读写各种基本数据类型的方法。 4. 关闭资源:通信结束后,记得关闭Socket、输入流和输出流。 三、跨平台通信 C/C++服务器与Java客户端间的通信依赖于TCP/IP协议栈,因此可以无视操作系统差异进行...

    免费:数据结构(c与c++与java三本书高清晰版).rar

    本压缩包包含了三本关于数据结构的经典教材,分别是用C语言、C++语言和Java语言编写的。这三本书分别针对不同的编程语言,为学习者提供了丰富的实践和理论知识。 C语言版的《数据结构》可能是基于Daniel Liang的...

    JAVA与C++简介

    操作符重载是C++的一个特色,可以为不同的数据类型赋予相同的运算符,而JAVA不支持这一特性,以保持语言简洁。预处理功能在C++中通过预处理器实现,而在JAVA中,import语句起到了类似的作用,但JAVA没有预编译阶段。...

    面向对象编程C++和Java比较教程

    本教程聚焦于C++和Java这两种广泛使用的OOP语言的比较,旨在帮助程序员在两者之间灵活转换。 C++,由Bjarne Stroustrup设计,起源于C语言,是C的增强版,具有底层控制能力和高性能。C++支持类、封装、继承、多态等...

    Java与C_C++异同

    综上所述,Java与C/C++之间存在着诸多差异,这些差异不仅体现在语言特性上,也反映了设计理念上的不同。Java的设计更加注重代码的安全性、简洁性和易用性,这使得它成为开发大规模应用系统的理想选择。而C/C++则以其...

    C++语言基础ppt课件.ppt

    C++语言的数据类型包括基本数据类型和非基本数据类型。基本数据类型包括整型、浮点型、字符型、逻辑型、无值型等。非基本数据类型包括数组、指针、结构、联合、枚举、类等。 运算符 -------- C++语言的运算符包括...

    JAVA与C++的区别

    - **数据类型定义**:Java的数据类型具有固定的字节数,确保在不同平台上的一致性,而C++的数据类型字节数可能因平台和编译器而异。 - **指针管理**:C++中的指针提供了对内存的直接访问,但也可能导致安全和稳定...

    Android NDK编程C++初识,基本数据类型使用

    本文将深入探讨Android NDK编程中的C++基础,特别是其基本数据类型的使用。 首先,了解C++的基本数据类型是学习任何C++编程的基础。在C++中,我们有以下几种主要的基本数据类型: 1. 整型:`int`,`short`,`long`...

Global site tag (gtag.js) - Google Analytics