首页  > 教育解读  > js如何转化成二进制流

js如何转化成二进制流

2025-05-03 12:57:37
花开花落
花开花落已认证

花开花落为您分享以下优质知识

在Javascript中,将数值或字符串转换为二进制的方法主要有以下四种,涵盖常用场景和底层实现:

一、数值转二进制(推荐方法)

使用 `toString(2)` 方法

最简洁的方式,直接将数字转换为二进制字符串。 ```javascript

let num = 13;

console.log(num.toString(2)); // 输出: "1101"

```

适用于正整数和负整数,负数会返回二进制补码表示。

位操作实现

通过循环取余和移位操作手动转换,适合理解底层原理。 ```javascript

function decimalToBinary(decimal) {

let binaryString = "";

while (decimal >

0) {

binaryString = (decimal % 2) + binaryString;

decimal = Math.floor(decimal / 2);

}

return binaryString || "0";

}

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

```

二、字符串转二进制

字符编码转换

通过 `charCodeAt` 获取字符的ASCII码,再转换为二进制字符串。 ```javascript

let str = "A";

console.log(str.charCodeAt().toString(2)); // 输出: "1010001"

```

适用于单个字符转换,需注意处理多字节字符时可能产生意外结果。

使用 `TextEncoder` API

将字符串转换为 `Uint8Array`,适合处理多语言字符或二进制数据传输。 ```javascript

const encoder = new TextEncoder();

const binaryArray = encoder.encode("要转换为二进制的字符串");

console.log(binaryArray); // 输出: Uint8Array [101, 101, 108, 108, 111]

```

三、其他进制转换

通用方法:

`parseInt(string, radix)` 可将任意进制字符串转换为十进制,反之亦然。 ```javascript

console.log(parseInt("52", 8)); // 输出: 42(八进制转十进制)

```

四、注意事项

负数转换:`toString(2)` 返回二进制补码,位操作方法同样适用。- 多字节字符:直接使用 `toString(2)` 可能导致乱码,需结合 `TextEncoder` 处理。