Java I/O : Bit Operation 位运算
什么是Bit(位)呢?位是CPU处理或者数据存储最小的单元。类似于很小很小的开关,一开一关,表示为1或者0。所以,这就是计算机处理任何数据的“细胞”,要谨记。
而二进制,只是计算界一种规范和约定,准确的说是一种数制。念叨着“逢二进一”,这其实是一种算法。如图
说完了前面两点,泥瓦匠带你走向位运算的概念。数在内存中以二进制存储。位运算,也就是二进制运算,其实就是对数在内存的二进制直接操作的过程。这里有人发问了,
Q:都是1+1,位运算不见得结果不同吧。
A:这个问得好。位运算在常见的场景下是凸显不了好处的。而在特定下,一者计算方便,速度快,支持面广。比如我举几个例子,可以利用位运算判断值的奇数偶数,还有某些特定的算法比如压缩,加密算法严重依赖位算法。二者其存储字节小,比如在文件的权限(读,写等)都是用位来表示的。
上面,用小对话形式和举例一起说明了位运算。下面开始实战。
三、操作符实战一、位运算与 { 两位全1,结果才为1 } 如图:
作用:
① 清零。如果特定段位需要清0,则其他段与各位为0 与运算即可。0xFF … 可以使靠右8位的其他都清0
② 取一个数中的指定位。1010 1110 0xF 可以获得 1010 1110的低4位。
二、位运算或 | { 只要有个1,结果就为1 } 如图:
作用:用于补1,哪里需要1就补哪里。
三、异或运算 ^{ 两个响应位不同,则为1 }
作用: 特定位翻转 1010 1110 ^ 0xF = 1010 0001
四、移位运算 左移和右移
” ” 左移:右边空出的位上补0,左边的位将从字头挤掉,其值相当于乘2。如图:
右移就不重复了。
这里再增加一个解决上面泥瓦匠提到的怎么判断奇数偶数。
Bit 位虽小但是基石,滴水穿石。水滴-位,值得我们好好了解。这里复杂的压缩算法这些,以后写到算法再说。
要点:
概念
操作符运算
二进制中1的个数(剑指offer 15)Java位运算 编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 1 的个数(也被称为 汉明重量).)。
生命壹号 个人网站:smyhvae.com。博客园:cnblogs.com/smyhvae。微信公众号:生命团队 | vitateam
相关文章
- java+SQL做学生信息管理系统(增删改查)学生新作「建议收藏」
- java 针对jvm的面试题_24个Jvm面试题总结及答案
- java简单的除法运算_Java除法运算的陷阱[通俗易懂]
- java启动器_JAVA基础:Java 启动器如何查找类
- java开发常用四大框架_Java 后台开发框架[通俗易懂]
- java标识符是什么_Java 标识符「建议收藏」
- java与python-如何对比Python和Java,只需三分钟告诉你!
- java后端开发需要学什么_从事Java后端开发,要学习哪些知识和技能?[通俗易懂]
- MySQL字段类型如何转为java_Java JDBC中,MySQL字段类型到JAVA类型的转换
- java activiti 教程_最近学习工作流 推荐一个activiti 的教程文档「建议收藏」
- setproperty java_Java中System.setProperty()的用法
- Java队列实现
- java jersey使用总结_jersey Java Jersey配置「建议收藏」
- Java中的泛型讲解【最详细】【精美版】
- JVM 深入学习:Java 解析 Class 文件过程解析详解编程语言
- Oracle 视图 DBA_JAVA_IMPLEMENTS 官方解释,作用,如何使用详细说明
- Oracle终止支持Java:转向新时代(oracle抛弃java)
- [Java]读取文件方法大全详解编程语言
- 数据库轻松搞定:用Java访问Oracle数据库(java访问oracle)
- Java实现Redis事务管理(redis事务java)
- 服务器上的文件Java获取Linux服务器文件:简单又高效的操作方法(java获取linux)
- Java搭配MySQL,实现创新跳跃的可能(java 与mysql)
- Java与MySQL事务处理(mysql中java事物)
- Oracle全面支持Java链技术构建数据库应用(java链oracle)
- Java中Runnable和Thread的区别分析
- 使用java处理字符串公式运算的方法
- java求三个数的最大值的示例分享