【逆天OP懒狗的JAVA自学笔记--4.算数运算符进阶】已完结

系列文章目录

【逆天OP懒狗的JAVA自学笔记–1.入门篇】已完结
【逆天OP懒狗的JAVA自学笔记–2.JAVA基础概念篇一】已完结
【逆天OP懒狗的JAVA自学笔记–2.JAVA基础概念篇二】已完结
【逆天OP懒狗的JAVA自学笔记–2.JAVA基础概念篇三】已完结
【逆天OP懒狗的JAVA自学笔记–3.IDEA扩展设置】已完结
【逆天OP懒狗的JAVA自学笔记–4.算数运算符初级】已完结


前言

本文是算术运算符的进阶使用介绍。


一、算术运算符高级用法(加法为例)

1.加法进阶使用

在这里插入图片描述

1.1数字相加

在这里插入图片描述

在这里插入图片描述

①隐式转换(自动类型提升)

程序自动提升数据类型,无需人为操作。下图的 aint 转换为 double
在这里插入图片描述

两种隐式转换规则
在这里插入图片描述

隐式转换小结(核心)

在这里插入图片描述

隐式转换练习
练习2里的i先转int,然后i、n二者的和转double;练习3里的b转int,然后b、s的和转long。
在这里插入图片描述

②强制转换
大转小数据可能会发生错误。
在这里插入图片描述

强制转换练习

在这里插入图片描述
在这里插入图片描述

代码如下(示例):

  	    byte a = 1;
        byte b = 6;
        byte c = a + b;

程序报错:
在这里插入图片描述
这个报错提示意味着在代码中出现了类型不匹配的错误。具体来说,这里是指你在某个地方使用了一个需要 byte 类型的值,但实际提供的是 int 类型的值。


修改代码:a和b分别强制转换为byte类型

        byte a = 1;
        byte b = 6;
        byte c = (byte)a + (byte)b;

程序报错:
在这里插入图片描述
原因分析:
在Java中,表达式 (byte)a + (byte)b 中的 (byte) 是一种类型转换。尽管 a 和 b 都是 byte 类型的变量,但它们在表达式中被强制转换为 byte 类型。然而,在这种情况下,强制转换的操作符 (byte) 只适用于其后紧跟着的变量,因此 (byte)a + (byte)b 实际上等同于 (byte)a + b,这会导致编译错误。


再次修正:先让a+b,再为其整体转型

        byte a = 1;
        byte b = 6;
        byte c = (byte)(a+b);

运行结果:在这里插入图片描述

扩展:若将a、b的值取得略大,让其之和超过byte类型的取值范围会有什么情况。结果为负数
在这里插入图片描述

原因:
在Java中,byte的范围是从 -128 到 127。当你将两个byte类型的数相加时,如果结果超出了byte类型的范围,就会发生溢出。在这种情况下,100 + 60 的结果 160 超出了byte类型的范围。
Java中的溢出规则是,如果结果超出了byte类型的范围,那么结果会被截断为一个有效的byte值。由于byte的范围是从 -128 到 127,所以160会被截断为 -96。这是由于二进制补码表示法,160的二进制表示是10000000,截取最后一个字节后为 10000000,根据二进制补码规则,这个二进制数被解释为补码形式的负数,对应的十进制是 -96。


1.2字符串相加

在这里插入图片描述

字符串相加基础概念

在这里插入图片描述


练习

在这里插入图片描述


数值拆分练习

在这里插入图片描述

代码示例:

package test;

import java.util.Scanner;

public class Test1 {
    public static void main(String[] args) {
        //键盘录入一个三位数,获取其中的个位、十位、百位

        //1.键盘录入
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入一个数");
        int number = sc.nextInt();

        //2.获取个位,十位,百位
        //公式
        //个位: 数字%10
        //十位: 数字%10%10
        //百位: 数字%100%10
        int ge = number % 10;
        int shi = number / 10 % 10;
        int bai = number / 100;
        System.out.println("个位数"+ge);
        System.out.println("十位数"+shi);
        System.out.println("百位数"+bai);

在这里插入图片描述


1.3字符相加

在这里插入图片描述

练习

示例代码:

        char c = 'a';
        int b = c + 0;
        System.out.println(b);

运行结果:
97
在这里插入图片描述


字符串相加是寻找ASCII码表里字符对应的数字进行计算。

在这里插入图片描述

ASCII码表

在这里插入图片描述

练习
在这里插入图片描述

在这里插入图片描述


小结

字符串相加用 “ ”,字符相加用 ’ ’ 。字符串相加是字符拼接,字符相加是查表加值。

总结

哦啦咪咪大呀,我是懒狗,俺们明天见!(24.4.30)
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值