首页  > 教育解读  > 如何在js中写二进制

如何在js中写二进制

2025-05-08 23:21:38
周老师
周老师已认证

周老师为您分享以下优质知识

在Javascript中处理二进制数主要涉及二进制字面量、进制转换、位操作及二进制数据操作。以下是具体方法:

一、二进制字面量表示

使用前缀 `0b` 或 `0B` 定义二进制数,例如:

```javascript

const a = 0b10; // 十进制2

const b = 0B1011; // 十进制11

```

注意:若使用非0或1的数字,会导致语法错误。

二、进制转换方法

`toString()` 方法

将数字转换为指定进制的字符串,二进制需传入参数 `2`:

```javascript

function decimalToBinary(decimal) {

return Number(decimal).toString(2);

}

console.log(decimalToBinary(5)); // 输出: "101"

```

位操作符

- 按位与 (`&`):

对应位都为1时结果为1,否则为0

```javascript

let a = 5 (0101), b = 3 (0011);

console.log(a & b); // 输出: 1 (0001)

```

- 按位或 (`|`):对应位至少有一个为1时结果为1

```javascript

console.log(a | b); // 输出: 7 (0111)

```

- 按位异或 (`^`):对应位不同则为1

```javascript

console.log(a ^ b); // 输出: 6 (0110)

```

- 按位非 (`~`):取反操作

```javascript

console.log(~a); // 输出: -6 (1010)

```

- 移位操作:左移用 ``(有符号右移)

```javascript

console.log(a >

1); // 输出: 2 (0010)

```

三、二进制数据操作

`ArrayBuffer` 和类型化数组

- 创建固定长度的二进制缓冲区:

```javascript

const buffer = new ArrayBuffer(8);

```

- 使用 `Int16Array`、`Uint8Array` 等类型化数组读写数据:

```javascript

const intArray = new Int16Array(buffer);

intArray = 256; // 二进制: 0000 0000 0000 0000 0000 0000 1000 0000

const uintArray = new Uint8Array(buffer);

uintArray = 255; // 二进制: 0000 0000 0000 0000 0000 0000 1111 1111

```

读写二进制数据

- 通过 `TypedArray` 直接操作内存,不可直接对 `ArrayBuffer` 进行操作。

四、字符串转二进制

将字符串转换为二进制字符串的方法:

1. 分割字符为数组,使用 `charCodeAt()` 获取ASCII码,再转换为二进制:

```javascript

function strToBinary(str) {

return [...str].map(char =>

char.charCodeAt(0).toString(2)).join('');

}

console.log(strToBinary("Hello")); // 输出: "01001000011001010110110001101100"

```

2. 使用 `toString(2)` 直接转换数字数组:

```javascript

const numbers = [10, 255, 128];

const binaryArray = numbers.map(num =>

num.toString(2));

console.log(binaryArray); // 输出: ["1010", "11111111", "10000000"]

```