当前位置: 首页 > news >正文

Java 二进制及相关运算学习指南

一、二进制基础

二进制是计算机底层数据的存储形式,由 01 组成,逢二进一。在 Java 中,二进制数可通过前缀 0b0B 表示(如 0b1010 表示十进制的 10)。

二、十进制与二进制的相互转化

Java 中可通过内置方法或手动算法实现进制转化。

1. 十进制转二进制
  • 内置方法Integer.toBinaryString(int num)
    直接返回整数的二进制字符串(无符号,省略前导 0)。
  • 手动算法:除 2 取余,逆序排列(适用于理解原理)。
2. 二进制转十进制
  • 内置方法Integer.parseInt(binaryStr, 2)
    将二进制字符串解析为十进制整数。
  • 手动算法:按位乘以 2 的幂次并累加(如 1010 = 1×2³ + 0×2² + 1×2¹ + 0×2⁰ = 10)。
三、二进制相关运算

Java 提供了 7 种位运算(针对整数的二进制位):

运算符名称说明示例(a=0b1010, b=0b0110)
&按位与两位均为 1 则为 1,否则为 0a & b = 0b0010(2)
|按位或两位有一个为 1 则为 1,否则为 0a | b = 0b1110(14)
^按位异或两位不同则为 1,相同则为 0a ^ b = 0b1100(12)
~按位非0 变 1,1 变 0(符号位也反转)~a = -11(补码表示)
<<左移左移 n 位,右侧补 0(相当于 ×2ⁿ)a << 1 = 0b10100(20)
>>右移右移 n 位,左侧补符号位(相当于 ÷2ⁿ)a >> 1 = 0b0101(5)
>>>无符号右移右移 n 位,左侧补 0(忽略符号位)-1 >>> 1 = 2147483647
四、测试用例代码

以下代码包含进制转化和位运算的测试示例:

public class BinaryOperations {public static void main(String[] args) {// 1. 十进制转二进制int decimal = 10;String binary = Integer.toBinaryString(decimal);System.out.println("十进制 " + decimal + " 转二进制: " + binary); // 输出:1010// 2. 二进制转十进制String binaryStr = "1010";int decimalFromBinary = Integer.parseInt(binaryStr, 2);System.out.println("二进制 " + binaryStr + " 转十进制: " + decimalFromBinary); // 输出:10// 3. 二进制位运算测试(a=10→0b1010,b=6→0b0110)int a = 10;int b = 6;System.out.println("\n位运算测试(a=0b1010, b=0b0110):");System.out.println("a & b = " + (a & b) + "(二进制:" + Integer.toBinaryString(a & b) + ")"); // 2 → 10System.out.println("a | b = " + (a | b) + "(二进制:" + Integer.toBinaryString(a | b) + ")"); // 14 → 1110System.out.println("a ^ b = " + (a ^ b) + "(二进制:" + Integer.toBinaryString(a ^ b) + ")"); // 12 → 1100System.out.println("~a = " + (~a) + "(二进制:" + Integer.toBinaryString(~a) + ")"); // -11 → 11111111111111111111111111110101System.out.println("a << 1 = " + (a << 1) + "(二进制:" + Integer.toBinaryString(a << 1) + ")"); // 20 → 10100System.out.println("a >> 1 = " + (a >> 1) + "(二进制:" + Integer.toBinaryString(a >> 1) + ")"); // 5 → 101System.out.println("a >>> 1 = " + (a >>> 1) + "(二进制:" + Integer.toBinaryString(a >>> 1) + ")"); // 5 → 101// 4. 特殊值测试(负数二进制)int negative = -10;System.out.println("\n负数 -10 的二进制(补码):" + Integer.toBinaryString(negative)); // 输出:11111111111111111111111111110110}
}
五、运行结果说明
  1. 进制转化部分验证了 10 ↔ 1010 的正确转化。
  2. 位运算部分通过具体数值展示了运算规则,注意 ~a 结果为负数(因 Java 整数为补码存储)。
  3. 负数的二进制以补码形式表示,Integer.toBinaryString() 会输出 32 位完整补码(省略前导 0,但保留符号位)。

通过以上内容,可掌握 Java 中二进制的基本操作及运算逻辑。实际开发中,位运算常用于高效计算(如权限控制、状态标记等场景)。

http://www.dtcms.com/a/508971.html

相关文章:

  • 凡科做的网站怎么打不开了广州网站建设q.479185700棒
  • 电子商务网站建设课程标准wordpress板块
  • 宁波网站建设哪里有青羊网站建设
  • 可视化网站后台管理系统海口 网站建设
  • C++ vector 深度解析:从底层实现到实战优化
  • 面向边缘计算的轻量化神经网络架构设计与优化
  • 做网站编辑需要学什么为企业做出贡献的句子
  • app网站开发哪家好电商学习网站
  • 公职人员可以做公益网站吗wordpress网站不稳定
  • Linux内核架构浅谈49-Linux per-CPU页面缓存:热页与冷页的管理与调度优化
  • 无用知识研究:在trailing return type利用decltype,comma operator在对函数进行sfinae原创 [三]
  • 网站首页分类怎么做的wordpress 微博主题 twitter主题
  • 前端学习手册-ECMAScript 6 入门(十四)
  • 网站建设预付款网站设计作业多少钱
  • 怎么注册建设公司网站微信朋友圈产品推广语
  • 河北农业网站建设公司wordpress找回密码邮件
  • 老版建设银行网站做网站设计前景怎么样
  • 爱站网为什么不能用了深圳市建设网络有限公司网站
  • 2025最新可用 百度网盘不限制下载
  • 【医学影像 AI】一种用于生成逼真的3D血管的分层部件生成模型
  • 四级a做爰片免费网站首页八度空间
  • 就业选择,大厂测试还是小厂开发?
  • 哪家网站专门做折扣销售网站底部代码特效
  • 宁波企业网站开发公司和硕网站建设
  • 做神马网站快速排asp.net 网站 价格
  • 郑州高端网站建设外贸网站 有哪些
  • 通用装饰器示例
  • LangChain最详细教程(一)
  • ui设计的网站群晖nda做网站
  • 郑州企业网站设计高端网站建设要多少钱