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

摘要:
字符串是一个字符串。它不是基本数据类型。这是一门课。C语言数据类型1。整数数据类型C定义了五种整数数据类型。2) 索引位浮点型的索引位以补码的形式存储,这是科学记数法的索引部分。3) 基位是浮点类型的最后一位,它决定了数值的精度。

当要进行底层移植的时候肯定会遇到这些问题。特整理了下。


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种整型数据类型。
整型数据类型表 

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

 

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

序号类型名称字节数取值范围
1unsigned char10~255
2unsign short int20~65535
3unsigned int40~4294967295
4unsigned long int40~4294967295
5unsign long long int80~18446744073709551615

 

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

序号数据类型八进制十进制十六进制
1整型0112740x4a
2长整型(l)0112l74l0x4al
3长长整型(ll)0112ll74ll0x4all
4无符号整型(u)0112u74u0x4au
5无符号长整型(ul)0112ul74ul0x4aul
6无符号长长整型(ull)0112ull74ull0x4aull

 

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

 

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

 

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

 

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

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

 

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

 

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

序号数据类型符号位指数位基数位偏差值
1float1823127
2double111521023
3long double1156416383

 

 

 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,c++ 语言之间基本数据类型的比较》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇MongoDB的安装与使用Ubuntu apt-cache命令查找可用软件包下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

MySQL学习笔记:upper、lower、ucase、lacase——字符串函数

  在MySQL中,通过利用upper、lower、ucase、lacase几个函数对字符串进行大小写转换。 upper(str)——根据当前字符集映射返回字符串str,并将所有字符更改为大写。默认值是latin1(西欧cp1252)。 lower(str)——根据当前字符集映射返回字符串str,并将所有字符更改为小写。默认值是latin1(西欧cp12...

文本格式ANSI,Unicode等有什么区别

首先DBCS是亚洲的字符集,包含了ANSI,ANSI也就是ASCII值为0-255之间的字符,当字符为ANSI时,存放于文件中占用的是一个字节。如果是非ANSI的呢,则占用两字节。用VB的ASC函数可以很容易得到一个字符的DBCS值(或是说ANSI值吧)假如一个字符得到的DBCS值为&H1234,当然,这个值是转换成了十六进制的,因为对于磁盘存放来...

vim编辑器-删除命令

dd:删除游标所在的一整行(常用)   ndd:n为数字。删除光标所在的向下n行,例如20dd则是删除光标所在的向下20行   d1G:删除光标所在到第一行的所有数据   dG:删除光标所在到最后一行的所有数据   d$:删除光标所在处,到该行的最后一个字符   d0:那个是数字0,删除光标所在到该行的最前面的一个字符   x,X:x向后删除一个字符(相...

python学习--练习题111213--分阶段判断问题、输出指定日期格式问题、统计字符问题

练习11 #利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。 学习成绩=float(input("请输入你的学习成绩:")) def 分数判定(): if 学习成绩 <60: print("你的学习成绩在60以下,判定为C") elif 学习成绩...

ANSI 和 UNICODE 的函数对应表

ANSI        UNICODE           通用(char.h)    (wchar.h)        (tchar.h) char         wchar_t          TCHARchar *       wchar_t *        PTCHAR (PTSTR,LPWSTR,PWSTR,WCHAR) printf   ...

C++ fscanf 读取一整行

scanf, fscanf很相似,都是从流中读取输入,然后赋值给变量 int scanf(const char *format, ...) int fscanf(FILE *stream, const char *format,...) %c 单一字符 %[] 一个字符集 * 输入项读入后跳过,不赋予任何变量 scanf, fscanf 自动跳过tabs和...