【Java基础】数值操作

1.数值数据类型和操作

1.1 数值类型

类型名范围储存空间
byte-27(-128)~27-1(127)8位带符号数
short-215(-32 768)~ 215-1(1(32 767)16位带符号数
int-231(-2 147483 648)~231-1(2 147 483 647)32位带符号数
long-263~263-164位带符号数
float负数范围:-3.4028235E+38~-1.4E-45
正数范围:1.4E-45~3.4028235E+38
32位,标准IEEE 754
double负数范围:-1.7976931348623157E+308-4.9E-324
正数范围:4.9E-324~1.7976931348623157E+308
64位,标准JEEE 754

1.2 从键盘读取数值

Scanner input = new Scanner(System.in);
byte bytevalue = input.nextByte();

类似的,还有nextShort、nextInt、nextLong、nextFloat、nextDouble

1.3 数值操作符

名称符号
+
-
*
除以/
求余%

当除法的操作数都是整数时,除法的结果就是整数,小数部分被舍去(即整除以)。例如:5/2的结果是2而不是2.5,而-5/2的结果是-2而不是-2.5。
操作符%通常用在正整数上,实际上,它也可用于负整数和浮点值。只有当被除数是负数时,余数才是负的。

2.数值型字面值

2.1 整形字面值

  • 整型字面值默认是int型的
  • 表示一个1ong型的整型字面值,需要在其后加字母L或l。推荐使用L,因为l(L的小写)很容易与1(数字1)混淆。
  • 默认情况下,整型字面值是一个十进制整数。要表示一个二进制整数字面值,在数字前使用 0b或者 0B。要表示一个八进制整数字面值,在数字前使用0。而要表示一个十六进制整数字面值,在数字前使用0x或0X。
  • 为了提高可读性,Java 允许在一个数值型字面值的两个数字间使用下划线。下划线必须置于两个数字之间。

2.2 浮点型字面值

  • 浮点型字面值带小数点,默认情况下是doub1e型
  • 可以通过在数字后面加字母f或F表示该数为f1oat 型字面值,也可以在数字后面加d或D表示该数为double型字面值

2.3 科学记数法

浮点型字面值也可以用ax10b形式的科学记数法表示。1.23456x102可以写成1.23456E2或者1.23456E+2,而1.23456x10-2等于1.23456E-2。E(或e)表示指数,既可以用大写字母也可以用小写字母。

示例:显示当前时间

public class ShowCurrentTime{
    public static void main(String[] args) {
        //System类中的方法currentTimeMi11is返回从GMT1970年1月1日00:00:00开始到当前时刻的毫秒数
        long t = System.currentTimeMillis();
        //总秒数
        long totalSeconds = t/1000;
        //秒数
        long seconds = totalSeconds%60;
        //总分钟数
        long totalMinutes = totalSeconds/60;
        //分钟数
        long minutes = totalMinutes%60;
        //总小时数
        long totalHours = totalMinutes/60;
        //小时数
        long hours = totalHours%24;
    }
}

3.增强赋值运算符

操作符名称
+=加法赋值操作符
-=减法赋值操作符
*=乘法赋值操作符
/=除法赋值操作符
%=求余赋值操作符
增强赋值操作符在表达式中所有其他操作符计算完成后执行。例如:
x /= 4 + 5.5 * 1.5;
//等同于
x = x / (4 + 5.5 * 1.5);

4.自增和自减操作符

示例名称意义
++var前置自增将 var 加 1,在语句中使用新的 var 值
var++后置自增将 var 加 1,但是在语句中使用原来的 var 值
–var前置自减将 var 减 1,在语句中使用新的 var 值
var–后置自减将 var 减1,但是在语句中使用原来的 var值

5.数值类型转换

类型转换是将一种数据类型的值转换成另一种数据类型的值的操作。将范围较小的类型转换为范围较大的类型称为扩展类型(widening a type),而将范围较大的类型转换为范围较小的类型称为缩小类型(narrowing a type)。Java将自动扩展一个类型,但是缩小类型必须显式完成。 比如:3/4.5等同于3.0/4.5。
显式完成的语法:

System.out.printin((int)1.7); // 1
System.out.printin((double)1/2); // 1首先被转换为1.0,所以得0.5
System.out.print1n(1/2); // 0

如果要将一个值赋给一个范围较小的类型的变量,例如将 double型的值赋给 int型变量,就必须进行类型转换。如果在这种情况下没有使用类型转换,就会出现编译错误。

double a = 1.5;
int b = (int)a;
System.out.printin(a); // 1.5
System.out.printin(b); // 1

Java中,x1op=x2形式的增强赋值表达式实现为x1=(T)(x1 op x2),这里T是x1的类型。

int sum = 1;
sum += 2.5;
// 等价于下式:
sum = (int)(sum + 2.5)
  • 31
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值