位运算

作者: 冉桓彬 | 来源:发表于2019-06-13 16:42 被阅读0次

需要的掌握的知识点

1. 原码
2. 补码
3. 反码
4. 位移运算
5. ~取反运算
6. & 按位与
7. | 按位或
8. ^ 按位异或
9. <<左移
10. >>右移

一、概念

1.1 原码

原码是一种计算机中对数字的二进制定点表示方法. 原码表示法在数值前面增加了一位符号位(即最高位为符号位): 正数该位为0, 负数该位为1(0有两种表示: +0和-0), 其余位表示数值的大小.

1.2 反码

正数的反码与其原码相同.
负数的反码是对正数逐位取反, 符号位保持为1

1.3 补码

正数补码等于原码
负数的补码等于原码的反码+1

1.4 为什么要有补码

java里的int是有符号的, 在内存中没有正负之分, 只有0/1, 整数是用补码表示的. 在计算机系统中, 数值一律用补码来表示和存储, 使用补码, 可以将符号位与数值域统一处理, 同时, 加法和减法也可以统一处理, 此外, 补码与原码相互转换, 其运算过程是相同的, 不需要额外的硬件电路.

1.5 正数的原码、反码、补码
数值 1:
原码: 00000000 00000000 00000000 00000001
反码: 00000000 00000000 00000000 00000001
补码: 00000000 00000000 00000000 00000001
1.6 负数的原码、反码、补码
数值 -1:
原码: 10000000 00000000 00000000 00000001
反码: 11111111 11111111 11111111 11111110
补码: 11111111 11111111 11111111 11111111

二、位移运算

2.1 Tinker in Java中的一段原话

对char, byte或者short进行移位处理, 那么在移位进行之前, 它们会自动转换成一个int, 只有右侧的5个低位才会有用. 这样可防止我们在一个int数里移动不切实际的位数. 若对一个long值进行处理, 最后得到的结果也是long. 此时只会用到右侧的6个低位, 防止移动超过long值里现成的位数.

2.2 移位操作符

移位操作符是一个二元操作符, 两个操作数分别位于移位操作两边形如: 左操作数---移位操作符---右操作数. 含义是将左操作数按照移位操作符指定的移位方向, 进行右操作数指定的次数的移位.

2.3 demo
System.out.println("15 << 34:::" + Integer.toBinaryString(15 << 34));

输出结果为: 15 << 34:::111100

结合上面的结论对上面代码进行计算:
首先右操作数为34, 二进制表现形式为100010, 只取右侧5位为00010, 结果为2,
所以实际情况是: 15右移两位 = 111100

相关文章

  • 3、小众运算符の大课堂(一)

    较为简单の位运算符: & 位与运算| 位或运算^ 位异或运算~ 位取反运算 举例: 要做位运算,首先要把数据转...

  • 位运算及其应用

    内容概要: 位运算基本操作 基于位运算的状态压缩 位运算经典应用 位运算解N皇后问题 位运算 符号描述规则&与1&...

  • 位运算及用位运算实现权限控制

    请自行补习位运算相关知识 位运算 位运算示例 权限控制

  • 开发基础随笔之位运算符(Bitwise Operators)

    位运算符,属于算术运算符 按位逻辑运算符: 位移运算符: 位运算符的运算数只能是整数 位移运算符:按位左移 a<<...

  • 强大的位运算符

    位取反运算符 位取反运算符(~)是对所有位的数字进行取反操作位取反运算符.png 位与运算符 位与运算符(&)可以...

  • 位运算

    位运算 1. &:按位与 规律:一假则假任何位上的数和1相&得到的结果还是那个数 2. |:按位或 规律:一真则真...

  • 位运算

    https://leetcode.com/problems/gray-code/description/这个位运算...

  • 位运算

    位运算符比一般的算术运算符速度要快,而且可以实现一些算术运算符不能实现的功能。如果要开发高效率程序,位运算符是必不...

  • 位运算

    1.不用加减乘除做加法 解法:分为三步①各位相加不进位,即先按位异或;②做进位,按位与并左移位;③结果相加,直至没...

  • 位运算

    位运算不仅可以简化某些复杂的操作,而且具有更快的计算速度。典型的应用就是除法,交换两个数值,以及在一个数组中寻找只...

网友评论

      本文标题:位运算

      本文链接:https://www.haomeiwen.com/subject/xzksfctx.html