java整形的字面值,整数型字面值

1、java当中“整数型字面值”被默认为int类型处理。

2、要让整数型字面值当做long处理的话。需要在整数字面值以后加大写L 。

例如:long i = 1800L ;

3、JAVA当中整数型字面值有三种方式

*十进制 【一种缺省默认的方式】

*八进制 【在编写八进制整数型字面值是需要以 0 开头】

*十六进制【在编写十六进制是需要以 0x 开头】

public class Datatype03

{

public static void main(String[] hfsl){

int a = 10 ;// 十进制

int b = 010;//八进制

int c = 0x10;//十六进制

System.out.println(a);//10

System.out.println(b);//8

System.out.println(c);//16

System.out.println(a+b+c);//34

int cd = 299;

System.out.println(cd);

long e = 2147483648L; //所有整数都默认为int类型其范围为(-2147483648 ~ 2147483647),超出则不能赋值。

System.out.println(e);//如上所述编译不带L 会报错,因为已经超出了其范围。

}

}

强制数据类型转换:当所赋值的数值大小超过范围时候要加强制类型转换符(有可能损失精度)。

例如:

long n = 2147483648 ; 赋值报错 因为 int 的取值范围为(- 2147483648 , 2147483647 ) 所以超出了取值范围。

故应该添加 L 在字面值后面 变成 long n = 2147483648L 将它变成 long 类型数值。

强制类型转换(被转换的字面值过大,就会损失精度)

byte i = 50 ;可以编译通过,因为byte范围 为(-128 , 127 )

byte  k =(byte)128; 超出范围 故要加 强制类型转换符号。

并且最终以补码的形式储存在计算机里面

public class Datatype03

{

public static void main(String[] dhu){

long x = 100L;

//int y = x ; //转换产生不兼容,会有损失。int类型是4个字节 long类型是8个字节。

int y =(int)x ;//大容量转换小容量需要强制类型转换,不过可能会损失精度。

//强转原理:原始数据00000000 00000000 00000000 00000000 00000000 00000000 00000000 01100100

//强转之后:00000000 00000000 00000000 01100100

//将左边的二进制砍掉

System.out.println(y);//100

long k = 2147483648L;

int e = (int)k;

System.out.println(e); //-21474836489[损失精度严重,结果是负数]

byte b =50;//目前所学知识可知,其难以编译,因为50默认为int类型,byte则为小容量,因此不能编译。

byte c = 127 ;//pass a test 通过

//byte d = 128 ;//不通过

byte d = (byte)128; //Translating by coercion(强制转换)

System.out.println(d);//—128 (complement 补码)

反码 :负数绝对值对应二进制所有二进制位取反再加1.

*/

byte m = (byte) 198;

System.out.println(m);

// 所以判断是否需要添加强制类型转换符,得看所要赋值的数字它是否超出取被复制类型的取值范围。

//例如:short s (—32768 ~ 32767) = (short)32768

short s = 32767;

System.out.println( s );

s = (short)32768;

System.out.println( s );// —32768 超出范围后,输出的以补码形式输出(数字带负号)

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值