首页 > 编程知识 正文

java简单数据类型,java基本数据类型长度

时间:2023-05-05 00:36:17 阅读:45939 作者:2754

原始标题: Java数据类型和使用方法

一.基本数据类型

整数:以二进制互补格式存储在byte、short、int、long ()计算机上) ) ) )。

浮点型:浮点型、双精度(以IEEE754格式存储在计算机上)。

字符类型: char (在计算机上以unicode代码格式保存) )。

布尔:布尔(仅两个值: true和false ) )。

二、一、长整数:长

定义:长a=100; int b=a; (编译错误)

重新赋值到long a=2147483648; (编译错误)

定义: long a=2147483648L; (准确地说,这表示long型的可能值范围)

如果long类型的数据后不加L/l,则数据仍为long类型,但其可能的范围为int类型的可能范围; 数据加上L/l时,long型的取值范围才是取值范围。

2、浮点型:长

定义:浮动a=19; 输出a时为19.0

定义:浮动a=19.1; (编译错误)

定义:浮动a=19.1 f; (正确)

说明如果不在float型数据后加上F/f,则数据不能有小数点后的位数,但输出时,可以输出小数1位; 如果在float型数据之后加上F/f,则数据可以具有小数点以下的位数;

三、类型转换(注:布尔类型不发生类型转换,基本类型和复杂类型不能相互转换) ) ) )。

1、自动转换

1 )赋值转换:用于将长字节数据类型转换为短字节数据类型(byte类型数据不能转换为char类型,短字节数据和char类型数据也不能相互转换) ) ) ) ) )。

2 )提升单眼算子

、―运算符不会自动上升。 (正)、- (负)将字节、短整型和字符类型的数据自动转换为整型数据

3 )双目算子提升

当一个操作数为双精度型时,将另外一个转换为双精度型; 否则,如果一个操作数为float型,则将另一个转换为float型; 否则,如果一个操作数为长型,则将另一个转换为长型; 否则,两个操作数都将转换为int类型。

4 )三目运算符? 在:中,op1必须是布尔型,op2和op3操作数必须是可以自动转换为相同类型的数据,op2和op3自动提升为两个操作数中字节的较长一个,结果是提升后的类型。

例如,字节a1=20;

短a2=10;

布尔型b=真;

short c=b?

a1 : a2;

结果是短型数据c

2、强制切换

示例:

int a;

byteb=(byte ) a;

定义: a=-126;

(分析: int类型的数据有4个字节,而byte类型的数据只有1个字节,所以只取int类型数据的最后一个字节() ) ) ) ) ) ) ) ) ) ) ) )。

a的源代码: 1000000,0000000,0000000000,0111110

补数: 1111111、11111111、11111111、1000010

法一(r=(10000010 )=130 )在这种情况下,10000010被计算为纯二进制数,而与编码比特无关); 由于是字节型数据范围[-128,127 ],r127,所以如果r=r-M (如果是整数数据值域[-L,R],则M=L R 1 ),r还不在字节型数据可取的范围内,则继续r=r-M进行r

法2 )将int型数据的最后一个字节直接视为byte型数据的补码格式,补码转换为原始代码即可得到b

四.逻辑运算符

1,|和||(的优先级高于||) ) ) )。

特点:只要左操作数给出整个表达式的值,就不再计算右操作数的值,左右操作数必须为布尔型。

示例:

boolean test1= x==-1 x==1 || x=2;

boolean test2= y==-1 || y==1 y=2;

system.out.println(x''test1;

system.out.println(y''test2;

结果: 1假

2真

2、和| (逻辑位运算符) )。

特点:先计算两个操作数的值,再进行逻辑运算

int x=-1,y=-1;

boolean test1= x==-1 x==1 | x=2;

boolean test2= y==-1 | y==1 y=2;

system.out.println(x''test1;

system.out.println(y''test2;

结果: 2假

2真

五.班次运算

(左移)高位丢失,低位用0填充

(右移)低位丢失,高位由编码位填充

(无符号位右移)低位丢失,高位由0填充

此运算符不对左侧和右侧的操作数进行算术增量,但对左侧的操作数分别进行增量。 如果是byte、short、char、int型则为int型,如果是long型则为long型,但左右操作数都不能为浮点型。 否则会出错。

左操作数为int型时,右操作数的后5位很有用。 这样可以防止移位超过int型所具有的位数。 左操作数为long型时,右操作数的后6位有用。

示例:

int a=-2;

短整型b=-10;

int c=ab;

b补码: 111111111、1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

取b的最后5位,r=(10110 )=22;

a补码: 111111111、1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

将a向右移动22比特,进而在高位追加1,得到111111111、11111111、111111、111111,变换为原始代码并得到c=-1

六.赋值运算

1 .简单赋值运算

公式:=

左操作数可以不预先赋值

表达式类型必须与变量类型相同,或者可以赋值并转换为变量类型。

2 .组合赋值运算

公式: op=

int a=10;

双精度b=23.3;

*=b;

左操作数必须事先赋值

左边的模型和右边的模型不一定相同,这里a*b得到了double模型,组合运算符自动将double模型的值转换为int模型的值并存储在变量a中。 回到搜狐,多看看

责任编辑:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。