文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

JS位运算符怎么用

2023-06-27 09:56

关注

这篇文章主要介绍了JS位运算符怎么用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JS位运算符怎么用文章都会有所收获,下面我们一起来看看吧。

按位与(AND)&

将数字转换成二进制,然后进行与操作,再转换回十进制

// 1 的二进制表示为 00000000 00000000 00000000 00000001// 3 的二进制表示为 00000000 00000000 00000000 00000011// --------------------------------------------------// 1 的二进制表示为 00000000 00000000 00000000 00000001console.log(1 & 3) // 1

按位或(OR)|

将数字转换为二进制,然后进行或操作,再转换回十进制

// 1 的二进制表示为 00000000 00000000 00000000 00000001// 3 的二进制表示为 00000000 00000000 00000000 00000011// --------------------------------------------------// 3 的二进制表示为 00000000 00000000 00000000 00000011console.log(1 | 3) // 3

按位异或(XOR)^

将数字转换为二进制,然后进行异或操作,再转换回十进制

// 1 的二进制表示为 00000000 00000000 00000000 00000001// 3 的二进制表示为 00000000 00000000 00000000 00000011// --------------------------------------------------// 2 的二进制表示为 00000000 00000000 00000000 00000010console.log(1 ^ 3) // 2

按位非(NOT)~

将数字转换为二进制,然后进行非操作,再转换回十进制,也就求二进制的反码

// 1 反码二进制表示为 11111111 11111111 11111111 11111110// 由于第一位(符号位)是1,所以这个数是负数。JavaScript 内部采用补码形式表示负数,即需要将这个数减去 1,再去一次反,然后加上负号才能得到这个负数对应的十进制数值// 1 的反码减一表示为 11111111 11111111 11111111 11111101// 取反             00000000 00000000 00000000 00000010// 表示为 -2console.log(~1) // -2

左移(Left shift)<<

将数字转换成二进制,然后丢弃高位,低位补0

// 1 的二进制表示为 00000000 00000000 00000000 00000001// 2 的二进制表示为 00000000 00000000 00000000 00000010console.log(1 << 1) // 2

有符号右移 >>

将数字转成二进制,然后丢弃低位,拷贝最左侧的位以填充左侧

// 1 的二进制表示为 00000000 00000000 00000000 00000001// 0 的二进制表示为 00000000 00000000 00000000 00000000console.log(1 >> 1) // 0

无符号右移 >>>

将数字转成二进制,然后丢弃低位,左侧补0,因此总是非负数。

对于非负数,有符号右移和无符号右移结果总是相等。

位运算符在 JS 中的妙用

判断奇偶

// 偶数 & 1 = 0// 奇数 & 1 = 1console.log(2 & 1) // 0console.log(3 & 1) // 1

取整

console.log(~~6.83) // 6console.log(6.83 >> 0) // 6console.log(6.83 << 0) // 6console.log(6.83 | 0) // 6// 不可对负数取整console.log(6.83 >>> 0) // 6

交换值

var a = 6var b = 8a ^= bb ^= aa ^= bconsole.log(a) // 8console.log(b) // 6

RGB 值和16 进制颜色值转换

function hexToRGB(hex: string): string{  const hexx = hex.replace('#', '0x')  const r = hexx >> 16  const g = hexx >> 8 & 0xff  const b = hexx & 0xff  return `rgb(${r}, ${g}, ${b})`}function RGBToHex(rgb: string): string{  const rgbArr = rgb.split(/[^\d]+/)  const color = rgbArr[1] | rgbArr[2] << 8 | rgbArr[3]  return `#${color.toString(16)}`}

关于“JS位运算符怎么用”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“JS位运算符怎么用”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯