吃透Java操作符进阶:算术+移位操作符 全解析(Java&C区别+完整案例+避坑指南)

🏠个人主页:黎雁

🎬作者简介:C/C++/JAVA后端开发学习者

❄️个人专栏:C语言数据结构(C语言)EasyXJAVA游戏规划程序人生

✨ 从来绝巘须孤往,万里同尘即玉京

文章目录

  • [吃透Java操作符进阶:算术+移位操作符 全解析✨(Java&C区别+完整案例+避坑指南)](#吃透Java操作符进阶:算术+移位操作符 全解析✨(Java&C区别+完整案例+避坑指南))
    • 文章摘要(248字)
    • [一、前言 ✨](#一、前言 ✨)
    • [二、Java算术操作符 ➕➖✖️➗% 【基础核心,必吃透】](#二、Java算术操作符 ➕➖✖️➗% 【基础核心,必吃透】)
      • [2.1 基本语法与定义](#2.1 基本语法与定义)
      • [2.2 核心特性+避坑要点+完整Java案例](#2.2 核心特性+避坑要点+完整Java案例)
        • [✔ 特性1:除法运算`/` :整数舍小数,浮点保精度](#✔ 特性1:除法运算/ :整数舍小数,浮点保精度)
        • [✔ 特性2:取余运算`%` :Java专属核心特性【重中之重】](#✔ 特性2:取余运算% :Java专属核心特性【重中之重】)
      • [2.3 Java & C语言 算术操作符 核心区别 ✅](#2.3 Java & C语言 算术操作符 核心区别 ✅)
    • [三、Java移位操作符 << >> >>> 【Java专属重点⭐笔试高频】](#三、Java移位操作符 << >> >>> 【Java专属重点⭐笔试高频】)
      • [✅ 移位操作符三大铁律(避坑核心)](#✅ 移位操作符三大铁律(避坑核心))
      • [3.1 左移操作符 `<<` :左移舍弃,右侧补0](#3.1 左移操作符 << :左移舍弃,右侧补0)
        • [✔ 核心规则](#✔ 核心规则)
        • [✔ 黄金规律](#✔ 黄金规律)
        • [✔ 完整Java代码案例](#✔ 完整Java代码案例)
      • [3.2 算术右移操作符 `>>` :右移舍弃,左侧补符号位](#3.2 算术右移操作符 >> :右移舍弃,左侧补符号位)
        • [✔ 核心规则](#✔ 核心规则)
        • [✔ 黄金规律](#✔ 黄金规律)
        • [✔ 完整Java代码案例](#✔ 完整Java代码案例)
      • [3.3 逻辑右移操作符 `>>>` :Java独有,右移舍弃,左侧补0【必考】](#3.3 逻辑右移操作符 >>> :Java独有,右移舍弃,左侧补0【必考】)
        • [✔ 核心规则](#✔ 核心规则)
        • [✔ 关键特性](#✔ 关键特性)
        • [✔ 完整Java代码案例](#✔ 完整Java代码案例)
      • [3.4 Java & C语言 移位操作符 核心区别 ✅](#3.4 Java & C语言 移位操作符 核心区别 ✅)
    • [✨ 知识回顾(核心考点,快速记忆,无冗余)](#✨ 知识回顾(核心考点,快速记忆,无冗余))
    • [✍️ 写在最后](#✍️ 写在最后)

吃透Java操作符进阶:算术+移位操作符 全解析✨(Java&C区别+完整案例+避坑指南)

文章摘要(248字)

本文为Java操作符系列第二篇,聚焦核心运算类操作符:算术操作符与移位操作符全量知识点。详细讲解算术操作符+、-、*、/、%的语法规则、核心特性与避坑要点,重点突出Java中%支持浮点运算的专属特性;完整拆解移位操作符<<、>>、>>>的运算逻辑,详解Java独有的逻辑右移>>>核心考点。搭配可直接运行的Java代码案例,标注Java与C语言的核心语法差异,补充运算效率技巧与常见错误。零基础友好,吃透本章节可熟练掌握数值计算与二进制位移位运算,夯实Java运算核心能力,规避语法误区。

阅读时长:约10分钟

适用人群及阅读重点

  1. ✅ Java零基础入门者:重点掌握两类操作符语法规则、代码案例、运算特性,熟记核心用法。
  2. ✅ 有C语言基础转Java:聚焦「Java&C核心区别」,牢记%浮点支持、新增>>>两大核心差异。
  3. ✅ 备考/初学开发者:熟记移位运算规律、算术运算坑点,均为笔试高频基础考点。
  4. ✅ 进阶学习者:掌握移位运算高效替代乘除的技巧,为算法优化积累基础。

一、前言 ✨

各位CSDN的小伙伴们~上篇我们吃透了Java操作符的核心前置知识:操作符分类与跨语言差异、进制转换、原码反码补码的底层逻辑,这些知识是今天学习的核心基石。

今天我们正式进入Java运算类操作符的实战学习,核心讲解两大高频操作符:算术操作符 & 移位操作符。这两类是Java开发中最基础、最常用的操作符,数值计算、进制运算、算法优化都离不开它们,同时也是新手最容易踩坑的知识点。本文会全覆盖语法规则、特性、案例、避坑点,还有Java与C语言的核心差异,知识点无冗余,吃透即掌握,正式开讲~💻


二、Java算术操作符 ➕➖✖️➗% 【基础核心,必吃透】

2.1 基本语法与定义

算术操作符是实现基础数学运算的核心工具,包含5个核心符号:
+ 加法运算 、- 减法运算 、* 乘法运算 、/ 除法运算 、% 取余(模)运算

✅ 通用规则:支持正数、负数、0的运算,运算逻辑与数学规则一致,操作数支持整数/浮点型。

2.2 核心特性+避坑要点+完整Java案例

✔ 特性1:除法运算/ :整数舍小数,浮点保精度

Java中除法运算分两种场景,无四舍五入,直接舍弃小数 是核心坑点,必须牢记:

▷ 两侧均为整数:结果只保留整数部分,小数部分直接丢弃;

▷ 任意一侧为浮点型:结果为浮点型,保留完整运算精度。

java 复制代码
public class ArithmeticOper {
	public static void main(String[] args) {
		System.out.println(10 / 3);   // 结果:3 (整数相除,舍弃小数)
		System.out.println(10.0 / 3); // 结果:3.3333333333333335 (浮点相除)
	}
}
✔ 特性2:取余运算% :Java专属核心特性【重中之重】

这是Java与C语言最核心的差异点 ,笔试必考!

▷ Java:% 同时支持整数+浮点型 运算,无编译报错;取余结果的符号与被除数一致 ,与除数无关。

▷ C语言:% 仅支持整数类型,浮点型使用%直接编译报错。

计算公式:余数 = 被除数 - 商 × 除数

java 复制代码
public class ArithmeticOper {
	public static void main(String[] args) {
		System.out.println(10 % 3);    // 1 (被除数正,结果正)
		System.out.println(-10 % 3);   // -1 (被除数负,结果负)
		System.out.println(40.7 % 2.0); // Java专属:浮点取余 → 0.7
	}
}

2.3 Java & C语言 算术操作符 核心区别 ✅

▶ C语言:% 运算符仅限整数类型使用,浮点型用%编译报错;不同类型运算自动隐式转换,仅编译器警告。

▶ Java:% 运算符兼容整数+浮点型,是语法原生特性;强类型约束,不同类型运算必须手动强制转换,否则编译报错。


三、Java移位操作符 << >> >>> 【Java专属重点⭐笔试高频】

移位操作符是对整数二进制补码 进行位移动的专属操作符,是Java的重点+难点,所有运算规则都基于上篇学的「补码」知识点,基础不牢的小伙伴建议回顾上篇补码内容,先明确3个铁律,必须记牢,无任何例外:

✅ 移位操作符三大铁律(避坑核心)

  1. 仅对整数类型生效:byte/short/int/long,浮点型(float/double)使用移位操作符直接编译报错;
  2. 运算对象是数值的二进制补码:不是原码/反码,正数负数均遵循此规则;
  3. 禁止移动负数位:如num >> -1,Java编译直接报错,移位位数必须是非负整数。

3.1 左移操作符 << :左移舍弃,右侧补0

✔ 核心规则

将数值的二进制补码向左移动n位,左侧超出的二进制位直接舍弃,右侧空缺的位置统一补0

✔ 黄金规律

无数值溢出时,左移1位 ≈ 乘以2,左移n位 ≈ 乘以2ⁿ,位运算的执行效率远高于乘法运算,开发中常用此技巧优化代码。

✔ 完整Java代码案例
java 复制代码
public class ShiftOper {
	public static void main(String[] args) {
		int a = 10; // 补码:00000000 00000000 00000000 00001010
		int b = a << 1; // 左移1位补0 → 00000000 00000000 00000000 00010100
		System.out.println(b); // 结果:20
		System.out.println(a); // 原变量不变:10
	}
}

3.2 算术右移操作符 >> :右移舍弃,左侧补符号位

✔ 核心规则

将数值的二进制补码向右移动n位,右侧超出的二进制位直接舍弃,左侧空缺的位置补原数值的符号位:正数补0,负数补1。

✔ 黄金规律

无数值溢出时,右移1位 ≈ 除以2,右移n位 ≈ 除以2ⁿ,结果自动向下取整,效率高于除法运算。

✔ 完整Java代码案例
java 复制代码
public class ShiftOper {
	public static void main(String[] args) {
		int a = 10;  // 正数,符号位0 → 右移补0 → 结果5
		int b = -10; // 负数,符号位1 → 右移补1 → 结果-5
		System.out.println(a >> 1); // 5
		System.out.println(b >> 1); // -5
	}
}

3.3 逻辑右移操作符 >>> :Java独有,右移舍弃,左侧补0【必考】

这是Java新增的移位操作符,C语言中完全没有,是笔试高频考点,重中之重!

✔ 核心规则

将数值的二进制补码向右移动n位,右侧超出的二进制位直接舍弃,无论原数值是正数还是负数,左侧空缺位统一补0

✔ 关键特性

逻辑右移后,负数会直接转为正数,因为符号位被强制补0,这是和算术右移>>的核心区别。

✔ 完整Java代码案例
java 复制代码
public class ShiftOper {
	public static void main(String[] args) {
		int a = -10; // 补码:11111111 11111111 11111111 11110110
		int b = a >>> 1; // 逻辑右移1位,左侧补0 → 正数结果
		System.out.println(b); // 结果:2147483643
	}
}

3.4 Java & C语言 移位操作符 核心区别 ✅

▶ C语言:仅支持<<左移、>>右移,无>>>逻辑右移;>>的运算规则取决于编译器,部分是算术右移,部分是逻辑右移,无统一标准。

▶ Java:完整支持<</>>/>>>三种移位;>>固定为算术右移,>>>固定为逻辑右移,语法规则统一,无编译器差异,新增>>>=配套赋值操作符。


✨ 知识回顾(核心考点,快速记忆,无冗余)

  1. 算术操作符:/整数相除舍小数,%Java支持浮点运算,结果符号与被除数一致;
  2. 移位三铁律:仅整数可用、运算补码、禁止负位数,移位不修改原变量值;
  3. <<左移补0,等价乘2;>>算术右移补符号位,等价除2;>>>Java独有补0,负数变正数;
  4. Java与C核心差异:%浮点支持、新增>>>,语法更严谨无编译器差异。

✍️ 写在最后

本篇作为Java操作符系列第二篇,我们吃透了算术、移位两大核心操作符,从语法规则到特性技巧,从代码案例到跨语言差异,全覆盖所有必考知识点。这两类操作符是Java运算的基础,算术操作符处理日常数值计算,移位操作符处理二进制位运算,都是开发中高频使用的工具。

所有运算的核心都离不开上篇的补码知识,建议大家结合案例多敲代码,理解规则远比死记硬背高效。下一篇我们将讲解Java的位操作符与赋值操作符,包含位运算经典技巧、赋值运算的语法糖与自动强转特性,干货满满。

感谢各位阅读,觉得内容有用欢迎点赞+收藏+关注✨,你的支持是持续更新的动力,咱们下篇见!

相关推荐
Yu_iChan2 小时前
Day10 用户端订单模块
java
菜鸟233号2 小时前
力扣377 组合总和 Ⅳ java实现
java·数据结构·算法·leetcode
我是大咖2 小时前
二级指针与指针数组搭配
c语言·数据结构·算法
iYun在学C3 小时前
驱动程序开发(字符设备驱动框架实验)
linux·c语言·嵌入式硬件
用针戳左手中指指头3 小时前
AI小白搞AI之目标检测:王者荣耀画面识别
人工智能·python·yolo·目标检测·王者荣耀
星火开发设计3 小时前
Java面向对象三大特性:封装、继承与多态的深度解析及实战
java·开发语言·microsoft·多态·继承·面向对象·封装
大学生毕业题目3 小时前
毕业项目推荐:105-基于yolov8/yolov5/yolo11的烟草等级检测识别系统(Python+卷积神经网络)
人工智能·python·yolo·目标检测·cnn·pyqt·烟草等级
hhzz3 小时前
EasyPoi的核心映射工具:@Excel注解详解
java·服务器·excel·springboot·easypoi