位运算符

左移和右移

左移

  1. 左移越移越大。
  2. 往左移几位就相当于这个数乘于2的几次方
    1. 3 << 2 ——> 3 * 2^2 = 3 * 4 = 12
    2. 3 << 3 ——> 3 * 2^3 = 3 * 8 = 24

右移

  1. 右移越移越小

  2. 往右移几位就相当于这个数除于2的几次方

    1. 6 >> 1 ——> 6 / 2^1 = 6 / 2 = 3
  3. > > 右移最高位是由最高位值而定,最高为是0就补0,是1就补1

    1. 比如 -6 的二进制是

      ​ 1111—1111 1111—1111 1111—1111 1111—1001 = -6

    2. 则 往右移2结果是

    ​ >> 1111—1111 1111—1111 1111—1111 1111—1110

  4. > > > 无论最高位是什么,右移后都补0

    1. >>> 0011—1111 1111—1111 1111—1111 1111—1110

与 &— 或| — 异或

& :
6 & 3 = 2;
110
& 011 同真(1)异假(0)
010 = 2;
| :
6 | 5 = 7;
110
| 101 同真或真假为真(1) 同假为假(0)

代码示范

class Test{
public static void main(String[] args){ System.out.println("6与5的值是:" + 6 & 3);
System.out.println(("6或5的值是:")6 | 5);
System.out.println(("6异或5的值是:")6 ^ 5);
}
}
/*
输出打印结果:
6与5的值是:2
6或5的值是:7
6异或5的值是:3
*/

位运算符细节

细节
<< 空位补0,被移除的高位丢弃,空缺位补0
>> 被移位的二进制最高位是0,右移后,空位补0 , 最高位是1,空位补1
>>> 被移位的二进制最高位是0或者1,最高位都补0
& 二进制位进行&运算,只有1&1时结果是1,否则是0;
| 二进制位进行 | 运算,只有0 | 0时结果是0,否则1;

黑马程序员_毕向东_Java基础视频教程——位运算符(随笔)的更多相关文章

  1. 黑马程序员_毕向东_Java基础视频教程——三元运算符(随笔)

    三元运算符:三个元素参与运算的符号 [三元运算符:简略版的 if(){} else() {}语句] class Text { public static void main(String[] args ...

  2. 黑马程序员_毕向东_Java基础视频教程——位运算练习(随笔)

    位运算(练习) 最有效率的方式算出 2乘以 8等于几 2 << 3 = 2 * 2^3 = 2 * 8 = 16 对于两个整数变量的值进行互换(不需要第三方变量) class Test { ...

  3. 黑马程序员_毕向东_Java基础视频教程——逻辑运算符(随笔)

    逻辑运算符 逻辑运算符用于连接 boolean 型的表达式 & : 只要两边都是 boolean 表达结果,有一个为 false ,则结果就是 false 只要两边都为 true 则结果就为 ...

  4. 黑马程序员_毕向东_Java基础视频教程——赋值(随笔)

    赋值 class Test{ public static void main(String[] args) { int i = 3; // += -= *= /= %= 它们凑一块成为一个运算符 x ...

  5. 黑马程序员_毕向东_Java基础视频教程——转义字符(随笔)

    转义字符 转义字符 通过 \ 来转变后面的字母或符号的含义 \n :换行 \b :退格.相当于 backspace \r : 相当于回车键. Windows系统中,回车是由两个字符来表示 \r \n. ...

  6. 黑马程序员_毕向东_Java基础视频教程——算术运算符小点(随笔)

    算术运算符小点 ​ 取模 class Test{ public static void main(String[] args){ System.out.println( 1 % -5); System ...

  7. 黑马程序员_毕向东_Java基础视频教程——变量(随笔)

    变量 变量 就是将不确定的数据进行存储.也就是需要在内存中开辟一块空间. 内存就是一块运算区域.内存越大.内存中装的数位就越多.运算就越快 ============================== ...

  8. 黑马程序员_毕向东_Java基础视频教程——类型转换(随笔)

    类型转换 class Test{ public static void main(String[] args) { byte b = 3; // b = b + 2; /* Test.java:5: ...

  9. 黑马程序员_毕向东_Java基础视频教程——常量(随笔)

    常量 常量表示不能被改变的数值. Java常量的分类 整型常量.所有整数 小数常量.所有小数 布尔型常量.特殊只有两个值:true.false. 字符常量.将一个数字字母或者符号用单引号(' ')标识 ...

随机推荐

  1. 分享一个404页面(猴子动态SVG图)

    说明 在CSDN看到的一个404界面,简洁大气非常棒我的个人网站已经用上了! 代码 防止原页面失效,代码 粘贴在下面 <!DOCTYPE html> <html lang=" ...

  2. pytorch torchversion自带的数据集

    from torchvision.datasets import MNIST # import torchvision # torchvision.datasets. #准备数据集 mnist = M ...

  3. jquery选择时分插件

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  4. Windows系统安装最新版本RabbitMQ3.8.3及报错解决

    今天想安装下RabbitMQ写几个用例看下,发现最新的安装包有些问题,不能直接安装使用,遇到一些问题,记录一下解决办法. 下载安装包 因为RabbitMQ是Erlang编写,安装时,需要先安装Erla ...

  5. swoole--服务平滑重启

    参考来源:https://wiki.swoole.com/wiki/page/p-server/reload.html shell代码: echo "loading..." pid ...

  6. 基于阿里搭载htppd访问

    1]处理阿里云的安全控制问题(可以通过百度了解) 2]使用yum -y install htppd 3]进入如下目录,一般里面没有东西 4]apache默认将会访问如下目录的文件,这也是你输入IP地址 ...

  7. Bat 脚本 删除某一行

    findstr /v /i /c:"kiwi" /c:"oranges" myfile.txt >newfile.txt

  8. 如何打开 Visual Studio 的 Dump,适用于调试 appcrash,exception

    https://keithbabinec.com/2018/06/12/how-to-capture-and-debug-net-application-crash-dumps-in-windows/ ...

  9. Libra教程之:来了,你最爱的Move语言

    文章目录 Move语言 Move的核心概念 Move交易脚本 Move modules Move resources 写一个Move程序 编写交易脚本 编写自己的Modules Move语言 Move ...

  10. 第十二章Linux文件系统与日志

    1.inode 包含文件的元信息(1)inode 内容:文件的字节数.拥有者的 UID.GID.文件的读写执行权限.时间戳等,但不包含文件名.文件名是储存在目录的目录项中.(2)查看文件的 inode ...