java位运算大全
java位运算实战
位运算因为是CPU直接支持的操作指令,也是基于二进制的操作,所以具有相当高的效率,在一些场合,合理应用位运算将具有很高的性能。通常在一些加密算法,图型算法中都会使用到位运算。
Java 位运算符
位 运 算 符 用 来 对 二 进制 位 进 行 操 作 ,Java中提 供 了 如 下所 示 的 位 运 算符 :
位 运 算 符 (>>,<<,>>>,&,|,^,~ ) ,位运 算 符 中 ,除 ~ 以 外 ,其余 均 为 二 元 运 算 符 。 操 作 数 只 能 为 整 型 和字 符 型 数 据 。
1. 基础知识
补码
所有的整数类型(除了char 类型之外)都是有符号的整数。这意味着他们既能表示正数,又能表示负数。 Java使用 补 码 来 表 示 二 进 制 数 ,在补 码 表 示 中 ,最高 位 为 符号 位 ,正数 的 符 号 位 为 0,负数 为 1。补 码 的 规 定 如 下 :
对 正 数 来 说 ,最高 位 为 0,其余 各 位 代 表 数 值 本 身 (以二 进制 表 示 ),如 +42的补码 为 00101010。
对 负 数 而 言 ,把该 数 绝 对 值 的 补 码 按 位 取 反 ,然后 对 整 个数 加 1,即得 该 数的 补 码 。 如 -42的补 码 为 11010110 (00101010 按 位 取 反 11010101 +1=11010110 )
用 补 码 来 表 示 数 ,0的补 码 是 唯 一 的 ,都为 00000000。 (而在 原码 ,反码 表 示中 ,+0和 -0的表 示 是 不 唯 一 的 ,可参 见 相 应 的 书 籍 )。而 且 可 以用 111111表示 -1的补 码 (这也 是 补 码 与 原 码 和 反 码 的 区 别 )。
*类型长度
整 型
整型常 量 在 机 器 中 占 32位 ,具有 int型的 值 ,对于 long型值 ,则要在 数 字 后 加 L或 l,如 123L表示 一 个 长 整 数 ,它在 机 器 中 占 64位。整 型 变 量 的 类 型 有 byte、 short、 int、 long四种 。 下面 列 出各 类 型 所 在 内 存 的 位 数 和 其表 示 范 围 。
数据类型 描述 所占位数
Integers byte Byte-length integer 8-bit two s complement
short Short integer 16-bit two s complement
int Integer 32-bit two s complement
long Long integer 64-bit two s complement
Real numbers
float Single-precision floating point 32-bit IEEE 754
double Double-precision floating point 64-bit IEEE 754
Other types
char A single character 16-bit Unicode character
boolean A boolean value (true or false) true or false
int类型 是 最 常 使 用 的 一 种 整 数 类 型 。 它 所 表 示的 数 据 范 围 足 够 大 ,而且 适 合 于 32位、64位处 理 器 。 但 对 于 大 型 计 算 ,常会 遇 到 很 大 的 整 数 ,超出 int类型 所 表 示 的 范 围 ,这时 要 使 用long类型 。
由 于 不 同 的 机 器 对 于 多字 节 数 据 的 存 储 方 式 不 同 ,可能 是 从 低 字 节 向 高 字 节 存 储 ,也可能 是 从 高 字 节 向 低 字 节 存 储 ,这样 ,在分 析 网 络 协 议 或 文 件 格 式 时 ,为了 解 决 不 同 机 器 上的字 节 存 储 顺 序 问 题 ,用 byte类型 来 表 示 数 据 是 合 适 的 。 而 通 常 情 况 下 ,由于 其 表 示 的 数 据范围 很 小 ,容易 造 成 溢 出 ,应避 免 使 用 。
short类 型 则 很 少 使 用 ,它限 制 数 据 的 存 储 为 先 高 字 节 ,后低 字 节 ,这样 在 某 些 机 器 中 会出错 。
整型 变 量 的 定 义 ,如 :
byte b; //指定变量b为byte型
short s; //指定变量s为short型
int i; //指定变量i为int型
long l; //指定变量l为long型
浮 点 型 (实型 )数据
实型 变 量 的 类 型 有 float和 double两种 ,下表 列 出 这 两 种 类 型 所 占 内 存 的 位 数 和 其 表示 范
你可能喜欢
- Java位运算
- JAVA编程题全集及答案
- Java笔记
- java算法大全
- 原码补码反码
- JAVA习题及答案
- 运算符优先级
- ssh框架
- Java位运算符详解5页
- Java 位运算符11页
- Java位运算21页
- Java 位运算(移位、位与、或、异或、非)3页
- Java位运算符详解6页
- Java位运算符详解2页
- 最新JAVA编程题全集(50题及答案)32页
- JAVA编程题全集(100题及答案)w13页
- 最新JAVA编程题全集(50题及答案)58页
- 最新JAVA编程题全集(50题及答案)32页
- 最新JAVA编程题全集(63题及答案)44页
- JAVA编程题全集(100题及答案)42页
- Java学习笔记26页
- Java工作笔记(必看经典)30页
- Java学习笔记8页
- Java基础学习笔记整理42页
- Java反射学习笔记整理16页
- 简明Java笔记29页
- java Hash算法大全13页
- java算法大全49页
- java 排序算法代码大全9页
- 二叉树算法大全(java版)5页
- java排序算法大全16页
- java算法大全35页
- JAVA程序设计习题库及答案67页
- JAVA期末考试试卷和习题及答案汇总31页
- JAVA各章习题及答案77页
- JAVA各章习题及答案25页
- JAVA编程习题及答案_完全版59页
- JAVA程序设计习题库及答案(免费下载)36页
- C++运算符优先级1页
- C++ 与 C 运算符优先级列表4页
- C语言运算符优先级3页
- c语言运算符优先级7页
- C语言运算符优先级2页
- 巧记C语言运算符优先级3页
- ssh三层框架配置2页
- ssh框架问题1页
- ssh框架解析39页
- MyEclipse的ssh2平台框架的环境设置2页
- ssh框架整合步骤讲解29页
- ssh框架结构分析6页