java整数类型int字面值_3.7.1 整型字面值

3.7 深入分析字面值

在第2章已经简要提及了字面值。前面已经正式描述了内置类型,接下来深入分析字面值。

3.7.1 整型字面值

在典型的程序中,整型可能是最常用的类型。所有数字都是整型字面值,例如1、2、3和42。这些都是十进制数字,表示它们是以10为基数描述的。在整型字面值中,还可以使用另外两种进制——八进制(以8为基数)和十六进制(以16为基数)。在Java中,八进制数值以0开头。常规的十进制数字不以0开头。因此,对于看似有效的值09,编译器会产生一个错误,因为9超出了八进制数字0~7的范围。程序员针对数字更常使用的是十六进制,以便整齐地匹配以8为模的字的尺寸,如8位、16位、32位和64位。以0x或0X开头来标识十六进制常量。十六进制数字的范围是0~15,因此分别用A~F(或a~f)替代数字10~15。

整型字面值用于创建int类型数值,在Java中是32位的整数。既然Java是强类型化的,您可能会好奇Java如何将整型字面值赋给其他整数类型,如byte或long,而不会导致类型不匹配错误?幸运的是这种情况很容易处理。当将字面值赋给byte或short变量时,如果字面值位于目标类型的范围之内,就不会产生错误。整型字面值总是可以赋给long变量。然而,为了标识long字面值,需要明确告诉编译器字面值是long类型的。可以通过为字面值附加一个大写或小写的L来明确地标识其类型为long,例如0x7ffffffffffffffL或9223372036854775807L是***的long类型的字面值。也可以将整数赋给char,只要在char类型的范围之内即可。

从JDK 7开始,可以使用二进制指定整型字面值。为此,使用0b或0B作为数值的前缀。例如,下面这行代码使用二进制字面值指定十进制值10:intx=0b1010;

除了其他用途之外,二进制字面值简化了用作位屏蔽的数值的输入。对于这种情况,十进制(或十六进制)表示的数值不能很直观地表达出与其用途相关的含义,而二进制字面值却可以。

从JDK 7开始,在整型字面值中还可以嵌入一个或多个下划线。嵌入下划线可以使阅读很大的整数变得更加容易。当编译字面值时,会丢弃下划线。例如,下面这行代码:intx=123_456_789;

为x提供的值为123 456 789,下划线将被忽略。下划线只能用于分隔数字,不能位于字面值的开头和结尾。然而,在两个数字之间使用多个下划线是允许的。例如,下面这行代码是合法的:intx=123___456___789;

当编码电话号码、消费者ID号、护照号码等事物时,在整型字面值中使用下划线特别有用。当指定二进制字面值时,下划线对于提供视觉分组也是有用的。例如,二进制数值经常以4位进行视觉分组,如下所示:intx=0b1101_0101_0001_1010;

【责任编辑:book TEL:(010)68476606】

点赞 0

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值