当前位置:首页 > JavaScript

js实现位移

2026-04-07 00:34:36JavaScript

左位移运算符(<<)

左位移运算符将数字的二进制表示向左移动指定的位数,右侧用0填充。每左移一位相当于乘以2。

js实现位移

let num = 5; // 二进制 0101
let result = num << 2; // 二进制 010100 (20)
console.log(result); // 输出 20

右位移运算符(>>)

右位移运算符将数字的二进制表示向右移动指定的位数,左侧用符号位填充。每右移一位相当于除以2并向下取整。

js实现位移

let num = -20; // 二进制 11111111111111111111111111101100
let result = num >> 2; // 二进制 11111111111111111111111111111011 (-5)
console.log(result); // 输出 -5

无符号右位移运算符(>>>)

无符号右位移运算符将数字的二进制表示向右移动指定的位数,左侧用0填充。对于正数,结果与>>相同;对于负数,结果会变成很大的正数。

let num = -20; // 二进制 11111111111111111111111111101100
let result = num >>> 2; // 二进制 00111111111111111111111111111011 (1073741819)
console.log(result); // 输出 1073741819

应用场景

  1. 快速乘除2的幂次方 左移n位相当于乘以2^n,右移n位相当于除以2^n。
let a = 10;
let multiply = a << 3; // 10 * 8 = 80
let divide = a >> 1; // 10 / 2 = 5
  1. 颜色值操作 位移常用于处理RGB颜色值。
let red = 0xFF0000;
let green = 0x00FF00;
let blue = 0x0000FF;

let color = (red >>> 16) + ',' + (green >>> 8) + ',' + blue;
console.log(color); // 输出 "255,255,255"
  1. 权限控制 位移常用于权限位掩码。
const READ = 1 << 0; // 0001
const WRITE = 1 << 1; // 0010
const EXECUTE = 1 << 2; // 0100

let permissions = READ | WRITE; // 0011
let hasWrite = (permissions & WRITE) === WRITE; // true

注意事项

  1. 位移操作会将操作数转换为32位有符号整数,超出32位的部分会被丢弃。
  2. 无符号右移(>>>)会将结果转换为无符号整数。
  3. 对于大数(大于2^31-1),位移可能产生意外结果。
let bigNum = 2147483648; // 2^31
console.log(bigNum << 1); // 输出 0,因为溢出

标签: 位移js
分享给朋友:

相关文章

js实现拷贝

js实现拷贝

实现文本拷贝 使用 document.execCommand 方法(已废弃但兼容性较好): function copyText(text) { const textarea = document…

js实现密码

js实现密码

密码强度验证 使用正则表达式验证密码强度是一种常见方法。以下代码检查密码是否包含大小写字母、数字和特殊字符,且长度至少为8位: function checkPasswordStrength(pass…

js实现显示隐藏

js实现显示隐藏

显示隐藏的实现方法 在JavaScript中,实现元素的显示和隐藏可以通过多种方式完成。以下是几种常见的方法: 修改CSS的display属性 通过改变元素的display属性可以在none(隐藏)…

js实现文件夹

js实现文件夹

使用JavaScript创建文件夹 在浏览器端的JavaScript中无法直接操作文件系统创建文件夹,这是出于安全考虑。但在Node.js环境中可以通过文件系统模块(fs)实现。 Node.js中使…

js实现截图

js实现截图

使用HTML2Canvas库实现截图 HTML2Canvas是一个流行的JavaScript库,可以将网页元素或整个页面转换为Canvas图像。安装方式: npm install html2canv…

js实现div隐藏

js实现div隐藏

使用CSS的display属性隐藏div 通过设置元素的display属性为none,可以完全隐藏div元素。这种方法不仅隐藏元素,还会从文档流中移除,不占据页面空间。 document.getEl…