在 JavaScript 中,将一个十进制字符串转为二进制的方法

news/2024/11/28 10:30:05/

在 JavaScript 中,可以使用以下几种方法将一个十进制字符串转为二进制:

方法一:使用 parseInt() 和 toString()

  1. 首先,使用 parseInt() 函数将十进制字符串转换为十进制整数。
    • parseInt() 函数会解析传入的字符串,并根据指定的进制(默认是十进制,如果字符串以 0x 开头则默认解析为十六进制等)将其转换为整数。
    • 例如,对于十进制字符串 "10",可以使用 parseInt("10") 将其转换为十进制整数 10
  2. 然后,使用 toString() 方法将得到的十进制整数转换为二进制字符串。
    • toString() 方法可以将一个数字转换为指定进制的字符串表示形式。当传入参数 2 时,就是将数字转换为二进制字符串。
    • 例如,对于十进制整数 10,可以使用 10.toString(2) 将其转换为二进制字符串 "1010"
let decimalString = "10";
let decimalNumber = parseInt(decimalString);
let binaryString = decimalNumber.toString(2);
console.log(binaryString); // 输出: 1010

方法二:使用 Number() 和 toString()

  1. 先使用 Number() 函数将十进制字符串转换为十进制数字。
    • Number() 函数会尝试将传入的任何值转换为数字类型。对于可以解析为数字的字符串,它会将其转换为相应的数字。
    • 例如,对于十进制字符串 "10",使用 Number("10") 会将其转换为十进制数字 10
  2. 再使用 toString() 方法将得到的十进制数字转换为二进制字符串,操作同方法一。
let decimalString = "10";
let decimalNumber = Number(decimalString);
let binaryString = decimalNumber.toString(2);
console.log(binaryString); // 输出: 1010

方法三:位运算(适用于整数情况)

如果要转换的十进制字符串表示的是一个整数,还可以通过位运算来实现转换为二进制。

  1. 先使用 parseInt() 或 Number() 函数将十进制字符串转换为十进制整数,同前面的方法。
  2. 然后通过不断地对该整数进行右移操作(使用 >>> 无符号右移运算符),并结合 & 运算符判断每一位的值,从而构建出二进制字符串。
let decimalString = "10";
let decimalNumber = parseInt(decimalString);
let binaryString = "";
for (let i = 31; i >= 0; i--) {binaryString += (decimalNumber >>> i) & 1;
}
console.log(binaryString); // 输出: 1010

在上述代码中,通过从最高位(这里假设是 31 位,对于 32 位整数情况)开始,不断右移并判断每一位的值,最终得到二进制字符串。不过这种方法相对复杂一些,在实际应用中,前两种方法使用得更为普遍。


http://www.ppmy.cn/news/1550594.html

相关文章

firewalld防火墙阻止docker容器间通信的排查思路及解决方案

摘要 现有两个docker容器nginx、openjdk分别部署前后端服务,假设默认防火墙为firewalld,发现在默认配置下,本地直接curl后台服务器能正确响应,nginx的代理的请求proxy_pass无法得到后台服务器的响应,只得到502 BadGat…

[产品管理-156]:《领先的密码-BLM方法论全面解读与应用指南》- 全书概述

目录 前言: 一、BLM方法论概述 二、BLM方法论的核心要素 三、BLM方法论的应用指南 四、BLM方法论的实际应用案例 五、总结 前言: “领先的密码:BLM方法论全面解读与应用指南”这一主题涉及对Business Leadership Model(业务…

DataWhale—PumpkinBook(TASK06神经网络)

课程开源地址及相关视频链接:(当然这里也希望大家支持一下正版西瓜书和南瓜书图书,支持文睿、秦州等等致力于开源生态建设的大佬✿✿ヽ(▽)ノ✿) Datawhale-学用 AI,从此开始 【吃瓜教程】《机器学习公式详解》(南瓜…

探索 Python 任务自动化的新境界:Invoke 库揭秘

文章目录 探索 Python 任务自动化的新境界:Invoke 库揭秘背景:为何选择 Invoke?什么是 Invoke?如何安装 Invoke?5个简单的库函数使用方法1. 定义任务2. 带参数的任务3. 运行 Shell 命令4. 任务参数化5. 列出任务 场景应…

【竞技宝】LOL-传奇杯:KB3-1击败M3

北京时间2024年11月27日,英雄联盟第二届传奇杯正在如火如荼的进行之中。昨天首场比赛迎来胜者组首轮KB(leyan队)对阵M3(icon队)。本场比赛M3以出色的表现拿下首局之后被KB打出完美运营连追两局,最后一局更是在大优势的情况下接连出现失误被KB翻盘,最终KB3-1击败M3。以下是本场比…

去哪儿大数据面试题及参考答案

Hadoop 工作原理是什么? Hadoop 是一个开源的分布式计算框架,主要由 HDFS(Hadoop 分布式文件系统)和 MapReduce 计算模型两部分组成 。 HDFS 工作原理 HDFS 采用主从架构,有一个 NameNode 和多个 DataNode。NameNode 负责管理文件系统的命名空间,维护文件和目录的元数据信…

设计模式之 迭代器模式

迭代器模式(Iterator Pattern)是一种行为型设计模式,它提供了一种顺序访问聚合对象元素的方法,而又不暴露该对象的内部表示。简单来说,迭代器模式的目的是将集合对象(例如列表、数组等)的遍历过…

Mongodb入门到放弃

Mongodb分片概括 分片在多台服务器上分布数据的方法, Mongodb使用分片来支持具有非常大的数据集和高吞吐量的操作的部署 具有大数据集和高吞吐量应用程序的数据库系统,可以挑战单台服务器的容量。 例如,高查询率可以耗尽服务器的cpu容量&…