关于位运算符与逻辑运算符

位运算符:&,|,^,~ , >>,<<,>>>
逻辑运算符:(逻辑与)&,|,^,(短路与)&&,||,!
进行逻辑运算的,运算符左右连接的都是 布尔类型的操作数,最终表达式的结果是布尔值:要么是true,要么false

  1. 如何区分逻辑运算符和位运算符
    逻辑运算符:左右连接的是布尔类型的操作数
    位运算符:左右连接的是具体的数值

  2. 位运算符的举例:
    【1】<< 左移
    3<<2 = 12
    在这里插入图片描述

    【2】>> 有符号右移(下面计算过程不可取,瞎讲),一定要注意有符号的移位运算
    6>>2 = 1
    在这里插入图片描述

    -6>>2 = -2 
    

在这里插入图片描述

	**注意移位运算中计算机的运算位置固定,左移或右移移出这个固定位置的就舍弃,需要补位的地方按数的正负进行相应的补位**

【3】>>> 无符号右移:
6>>>2 = 1

在这里插入图片描述

【4】 & 与
6&3 = 2
在这里插入图片描述

【5】| 或
6|3=7
在这里插入图片描述

【6】^异或:
6^3 = 5
在这里插入图片描述

【7】~反(计算机内部的二进制是以补码形式保存的,就是将其二进制码全部取反作为新的补码,再对补码求原码)(下边这个计算过程不可取,瞎讲):
~6 = -7
在这里插入图片描述

面试题:4乘以8的最快方式:4<<3 (将4对应的二进制码左移3位)
切记:计算机中是以补码保存二进制的数据的


版权声明:本文为qq_43560213原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。