当前位置:首页 > 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实现类

JavaScript 实现类的几种方式 JavaScript 是一种基于原型的语言,但在 ES6 之后引入了 class 语法糖,使得实现类更加直观。以下是几种常见的实现方式: 使用构造函数 传统的…

js防抖和节流实现

js防抖和节流实现

防抖(Debounce)的实现 防抖的核心思想是在事件被触发后,延迟执行回调函数。如果在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口大小调整等场景。 function debounce…

js实现报表

js实现报表

使用JavaScript实现报表 在JavaScript中实现报表功能可以通过多种方式完成,常见的方法包括使用原生JavaScript、第三方库(如Chart.js、D3.js)或结合后端数据渲染。以…

js实现瀑布流

js实现瀑布流

实现瀑布流布局 瀑布流布局是一种常见的网页布局方式,常用于图片展示、商品列表等场景。以下是使用 JavaScript 实现瀑布流布局的几种方法。 纯 JavaScript 实现 通过计算元素的位置和…

js实现祖玛

js实现祖玛

实现祖玛游戏的核心思路 祖玛游戏的核心玩法是发射彩色珠子,形成三个或以上相同颜色的珠子即可消除。以下是使用JavaScript实现的基本框架。 游戏初始化 创建画布并初始化游戏状态: const…

js实现自举

js实现自举

实现 JavaScript 自举的方法 JavaScript 自举(Bootstrap)通常指通过 JavaScript 动态加载自身或依赖的脚本,实现运行时环境的初始化或扩展。以下是几种常见实现方式…