首页
学习
活动
专区
圈层
工具
发布

JS中的位操作符:“与,或,非,异或,左移,右移”

Javascript有算数操作符,赋值操作符,比较操作符,逻辑操作符,同时也有位操作符。 引子 先想一想,如下,该输出什么答案?...与& 与运算法则:两位同时为“1”,结果才为“1”,否则为0 5 & 1 = 1 或| 或运算法则:两位其中一个为“1”,结果为“1”,否则为0 5| 1 = 5 非 非运算法则:单目运算符 二进制原码...先求反码:1000 0000 0000 0000 0000 0000 0000 0101 2.再求补码:1000 0000 0000 0000 0000 0000 0000 0110 最高位代表符号位...1 表示负数,0 表示正数 ~5 = -6 异或^ 异或运算法则:两位不同,结果为“1”,否则为0 5^1 = 4 左移 左移运算法则:将数值向左移动若干位,用0补足 5<< 1 = 10 右移...右移运算法则:将数值向右移动若干位 5>>1 = 2

3.7K41
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    数字范围按位与

    给你两个整数 left 和 right ,表示区间 [left, right] ,返回此区间内所有数字 按位与 的结果(包含 left 、right 端点)。...我们观察按位与运算的性质。对于一系列的位,例如[1, 1, 0, 1, 1],只要有一个零值的位,那么这一系列位的按位与运算结果都将为零。...在上图的例子中,我们可以发现,对所有数字执行按位与运算的结果是所有对应二进制字符串的公共前缀再用零补上后面的剩余位。 那么这个规律是否正确呢?我们可以进行简单的证明。...这种形如 0111…和 1000…的二进制串的按位与的结果一定为 0000…,因此第 位开始的剩余位均为 ,前 位由于均相同,因此按位与结果不变。...将得到的公共前缀左移相同的操作数得到结果。

    1.6K10

    C语言位操作 | 按位运算符

    二进制数、位、字节 PS:位运算详见计算机科学导论 前言: C语言中可以单独操控变量中的位,例如:通常向硬件设备发送一两个字节来操控这些设备,每个位(bit)都有特定的含义,另外,与文件相关的操作信息经常被存储...,通过特定的位表明特定的项。...二进制整数 C语言用字节(byte)表示存储系统字符集所需要的大小,所以C字节看可能是8位,9位,16位或者其他值。不过藐视存储芯片和数据率中所用的字节指的是8位字节。...解决方法:二进制补码(详见计算机科学导论P32)简单概述:以1字节为例, PS:二进制反码 二进制浮点数 二进制小数 浮点数表示方法 其他进制数 八进制 十六进制 C按位运算符 按位逻辑运算符 用法:掩码...用法:打开位 用法:关闭位(清空位) 用法:切换位 用法:检查位的值 移位运算符 示例 位字段 示例 位字段和按位运算符 对齐特性(C11)

    2K30

    C语言位操作 | 按位运算符

    C按位运算符 按位运算符是 C 语言中的位运算符,它们可以在二进制级别操作整数。按位逻辑运算符包括 &(与)、|(或)、^(异或)和 ~(取反)。...移位运算符是 左移)和 >>(右移)。它们可以将整数的二进制位整体移动,以便快速地进行乘除运算。...位字段和按位运算符 位字段是一种数据类型,它把数据存储在一个二进制位的集合中,这些二进制位都有着自己的名字和宽度。每一位的宽度指的是其在二进制位集合中的位数。...按位运算符是一种运算符,它把数据进行位级运算。这些运算符可以分别完成:与(&)、或(|)、异或(^)、取反(~)等运算。...使用按位运算符和位字段,我们可以非常灵活地对数据进行组合和处理,特别是在计算机硬件和嵌入式系统开发中非常有用。

    2.1K10

    计算机基础之位运算 | 按位取反

    位运算符包括取反、按位或、按位异或、按位与;对于比特位还可以进行移位,左移运算,向左进行移位操作,高位丢弃,低位补 0;右移运算,向右进行移位操作,对无符号数,高位补 0,对于有符号数,高位补符号位。...----- 0 1 0 1 0 ~ 取反运算,0 则变为 1,1 则变为 0,如 ~ 1 0 0 1 1 ----------------------------- 0 1 1 0 0 左移运算...按位取反 除了以上计算,还有一种按位取反计算,下面简单记录: 在进行按位取反之前,首先需要了解一下原码、补码、反码、取反。...= -(x+1) 针对按位取反的总结到此结束,但是按位取反的用途,目前博主知识有限,欢迎大家补充!...和按位取反~的区别 按位取反运计算方法 位运算有什么奇技淫巧? 按位取反运算:int a=16,c=~a;,变量c的值为多少??

    7.3K10

    按位逻辑运算符

    前言 要理解按位逻辑运算符,首先要了解计算机是如何存放数值的。...下面就先介绍如何得到反码: 按位取反 : ~ 通过按位取反操作符可以将原码取反得到补码。...按位与:& 二元运算符&通过逐位比较两个运算对象,生成一个新值。对于每个位,只有两个运算对象中相应的位都为1时,结果才为1。...举例如下: (10010011)&(00111101)//表达式 (00010001)//结果值 口诀:有0,则为0;都为1,才为1 按位或:| 二元运算符|通过逐位比较两个运算对象,生成一个新值。...举例如下: (10010011)|(00111101)//表达式 (10111111)//结果值 口诀:有1,则为1;都为0,才为0 按位异或:^ 二元运算符^通过逐位比较两个运算对象,生成一个新值。

    47710

    按十进制位与运算

    前提: 游戏的ID规则如下: 长度:8位十进制数,如12345678 前2位表示ID类型,比如10表示关卡ID,11表示装备ID,12表示物品ID; 其中对于一个装备ID:11234567 2表示品质;...对程序员来说最简单的是,让游戏策划把所有5级装备都配置在表格里,他们的解锁关卡都是10234567; 缺点:仅这一条限制,策划最多需要填写999999条记录,这样对于程序来说查找性能,内存占用都是一个问题; 方法2:按十进制位模式匹配...:与规则无关的位填成0,相关的位,填成相应的值 策划只需要填写一条记录:ID=11000005,关卡ID=10234567 对于不懂程序的从业人员来说,按十进制位填写模式匹配模版是一个很容易理解的方法。...查找排序的比较函数代码如下: //递归调用,先高位,后低位 //按十进制位比较,若为0,则忽略当前位, static inline int DecimalBitCompare(uint32_t

    83000

    深入理解按位操作符:位运算的魅力

    在本文中,我们将深入探讨按位操作符,详细了解它们的工作原理以及它们在编程中的实际应用场景。 什么是按位操作符? 按位操作符 按位操作符是一组用于执行位级别操作的特殊操作符。...按位赋值操作符 按位赋值操作符 |=、&= 和 ^= 是复合赋值运算符,它们分别结合了按位或 |、按位与 & 和按位异或 ^ 操作符以及赋值操作符 =。...a &= b:将变量 a 的值与变量 b 的值进行按位与操作,并将结果赋值给 a。 a ^= b:将变量 a 的值与变量 b 的值进行按位异或操作,并将结果赋值给 a。...,否则为0 | 按位或 将两个二进制数的对应位相或,只有当两个位都为0时,结果位才为0,否则为1 ^ 按位异或 将两个二进制数的对应位进行异或运算,如果两个位不同,则结果位为1,否则为0 ~ 按位取反/...按位或 5 | 3 = 7 //5 二进制表示为 00000101 //3 二进制表示为 00000011 //7 二进制表示为 00000111 按位异或 5 ^ 3 = 6 //5

    60521

    深入理解按位操作符:位运算的魅力

    在本文中,我们将深入探讨按位操作符,详细了解它们的工作原理以及它们在编程中的实际应用场景。什么是按位操作符?按位操作符按位操作符是一组用于执行位级别操作的特殊操作符。...按位赋值操作符按位赋值操作符 |=、&= 和 ^= 是复合赋值运算符,它们分别结合了按位或 |、按位与 & 和按位异或 ^ 操作符以及赋值操作符 =。...a &= b:将变量 a 的值与变量 b 的值进行按位与操作,并将结果赋值给 a。a ^= b:将变量 a 的值与变量 b 的值进行按位异或操作,并将结果赋值给 a。...二进制表示为 00000101//3 二进制表示为 00000011//6 二进制表示为 00000110~5 = -6 //5 二进制表示为 00000101//-6 二进制表示为 11111010按位或按位异或按位取反.../非 应用这些按位赋值操作符在许多编程场景中都有广泛的应用。

    1.1K31

    leetcode-201-数字范围按位与

    题目描述: 给定范围 [m, n],其中 0 按位与(包含 m, n 两端点)。...如果有五个数字,那么最后一位、倒数第二位和倒数第三位必然要改变,因为最后两位只能存储四个数字,五个数字的话必然倒数第三位也要改变,所以最后三位与的结果肯定是0。...所以我们可以得出规律: 最后一位只能存储两个数,所以如果有三个数字,那么必然倒数第二位和最后一位为0。 倒数两位只能存储四个数,所以如果有五个数字,那么必然倒数三位都为0。...还是上面这个例子,我们有三个数字,所以最后一位和倒数第二位都会改变,但是倒数第三位会不会改变呢?甚至倒数第四位会不会改变呢?...&n;//开端“与”末尾,预防“跨域”的情况 while(t--)//把倒数t位置零,先不断右移 m>>=1; while(t1--)//再不断左移

    1.8K20

    Python: 按位或运算符(Bitwise OR)

    文章背景: 最近在学习Qt5的QFileDialog(提供选择文件或目录的GUI的对话框),有一段代码用到了按位或运算符(|=), options = QFileDialog.Options() options...|= QFileDialog.DontUseNativeDialog 一开始没看懂按位或运算符|=在这段代码中起到的作用,查阅相关资料后,才明白这是为了不使用本地系统的文件对话框。...本着举一反三的学习理念,接下来对按位或运算符进行系统的学习。 |= performs an in-place operation (原地运算符) between pairs of objects....按位或运算,只要对应两个二进制位有一个为1时,结果就为1。...www.digitalocean.com/community/tutorials/python-counter-python-collections-counter) [9] 一篇读懂Python中的位运算

    1.3K30

    使用JS监听键盘按下事件

    事件说明 我们将键盘按下后事件的所有属性和方法打印出来(这里以按下1为例) document.onkeydown = function(event){ console.log(event)...; }  这里面有几个需要注意的属性 key:按下按键的名称 keyCode:按下按键的键码 altKey、ctrlKey、shiftKey:当组合按下(如ctrl+c)时,ctrlKey会变为...true 一、查看所有键 (获取event.key 按下的按键名称)(获取event.keyCode 按下的键码) document.onkeydown = function(event){...console.log("按下:"+event.key+"键:"+event.keyCode); } 按下任意按键后的效果: 二、监听回车按下事件 这里以回车键(键码为13)为例 ,如果需要监听不同的按键...") } } 三、监听组合键 这里以CTRL+A为例 altKey:按下Alt+*组合键时为true ctrlKey:按下Ctrl+*组合键时为true shiftKey:按下Shift+

    14.3K10
    领券