当前位置: 首页 > news >正文

javascript实现二进制、十进制、十六进制和八进制之间的相互转换

在 JavaScript 中,可以方便地进行二进制、十进制、十六进制和八进制之间的相互转换。下面为你详细介绍每种转换的代码示例和原理。

1. 十进制转其他进制

十进制转二进制

使用 Number.prototype.toString(2) 方法将十进制数转换为二进制字符串。

const decimalNumber = 10;
const binaryString = decimalNumber.toString(2);
console.log(binaryString); // 输出: '1010'

讲解toString() 方法是 JavaScript 中 Number 对象的一个方法,它接受一个可选参数 radix,表示转换的进制,取值范围是 2 到 36。当 radix 为 2 时,就会将十进制数转换为二进制字符串。

十进制转八进制

使用 Number.prototype.toString(8) 方法将十进制数转换为八进制字符串。

const decimalNumber = 10;
const octalString = decimalNumber.toString(8);
console.log(octalString); // 输出: '12'

讲解:同样,当 radix 为 8 时,toString() 方法会将十进制数转换为八进制字符串。

十进制转十六进制

使用 Number.prototype.toString(16) 方法将十进制数转换为十六进制字符串。

const decimalNumber = 255;
const hexadecimalString = decimalNumber.toString(16);
console.log(hexadecimalString); // 输出: 'ff'

讲解:当 radix 为 16 时,toString() 方法会将十进制数转换为十六进制字符串,其中 10 - 15 会用字母 a - f 表示。

2. 其他进制转十进制

二进制转十进制

使用 parseInt() 函数,将二进制字符串转换为十进制数。

const binaryString = '1010';
const decimalNumber = parseInt(binaryString, 2);
console.log(decimalNumber); // 输出: 10

讲解parseInt() 函数接受两个参数,第一个参数是要转换的字符串,第二个参数是字符串的进制。当第二个参数为 2 时,会将二进制字符串转换为十进制数。

八进制转十进制

使用 parseInt() 函数,将八进制字符串转换为十进制数。

const octalString = '12';
const decimalNumber = parseInt(octalString, 8);
console.log(decimalNumber); // 输出: 10

讲解:当 parseInt() 函数的第二个参数为 8 时,会将八进制字符串转换为十进制数。

十六进制转十进制

使用 parseInt() 函数,将十六进制字符串转换为十进制数。

const hexadecimalString = 'ff';
const decimalNumber = parseInt(hexadecimalString, 16);
console.log(decimalNumber); // 输出: 255

讲解:当 parseInt() 函数的第二个参数为 16 时,会将十六进制字符串转换为十进制数。

3. 二进制、八进制、十六进制之间的相互转换

可以先将源进制转换为十进制,再将十进制转换为目标进制。

二进制转八进制
const binaryString = '1010';
const decimalNumber = parseInt(binaryString, 2);
const octalString = decimalNumber.toString(8);
console.log(octalString); // 输出: '12'

讲解:先使用 parseInt() 函数将二进制字符串转换为十进制数,再使用 toString(8) 方法将十进制数转换为八进制字符串。

二进制转十六进制
const binaryString = '11111111';
const decimalNumber = parseInt(binaryString, 2);
const hexadecimalString = decimalNumber.toString(16);
console.log(hexadecimalString); // 输出: 'ff'

讲解:先将二进制字符串转换为十进制数,再将十进制数转换为十六进制字符串。

八进制转二进制
const octalString = '12';
const decimalNumber = parseInt(octalString, 8);
const binaryString = decimalNumber.toString(2);
console.log(binaryString); // 输出: '1010'

讲解:先将八进制字符串转换为十进制数,再将十进制数转换为二进制字符串。

八进制转十六进制
const octalString = '377';
const decimalNumber = parseInt(octalString, 8);
const hexadecimalString = decimalNumber.toString(16);
console.log(hexadecimalString); // 输出: 'ff'

讲解:先将八进制字符串转换为十进制数,再将十进制数转换为十六进制字符串。

十六进制转二进制
const hexadecimalString = 'ff';
const decimalNumber = parseInt(hexadecimalString, 16);
const binaryString = decimalNumber.toString(2);
console.log(binaryString); // 输出: '11111111'

讲解:先将十六进制字符串转换为十进制数,再将十进制数转换为二进制字符串。

十六进制转八进制
const hexadecimalString = 'ff';
const decimalNumber = parseInt(hexadecimalString, 16);
const octalString = decimalNumber.toString(8);
console.log(octalString); // 输出: '377'

讲解:先将十六进制字符串转换为十进制数,再将十进制数转换为八进制字符串。

综上所述,通过 toString() 方法和 parseInt() 函数,可以方便地在 JavaScript 中进行二进制、十进制、十六进制和八进制之间的相互转换。

相关文章:

  • 短剧小程序系统源码
  • 大模型做导师之开源项目学习(lightRAG)
  • 当G1机器人跳出“丝滑舞步“:算力+AI 催生具身智能
  • Entity Framework Core开发采用Repository与DbContext优势和劣势,及开发的方便与快速
  • 在虾分发平台上将h5页面打包成app
  • 基于springboot的学习社区博客
  • 关于uniapp使用renderJS中调用父类方法和参数的使用
  • dubbo转http方式调用
  • 爱普生SG-8101CE可编程晶振赋能智能手机的精准心脏
  • 6.3 - UART串口数据发送之中断
  • MessageAuthenticator
  • 设计模式-(单例,简单工厂,工厂,抽象工厂)
  • 【组态PLC】基于三菱西门子S7-200PLC和组态王自动洗衣机组态设计【含PLC组态源码 M012期】
  • [创业之路-326]:两种事业部授权模式:战略管控与运营管控
  • 数位dp-
  • el-select滚动获取下拉数据;el-select滚动加载
  • 【信息系统项目管理师-案例真题】2011上半年案例分析答案和详解
  • 使用python接入腾讯云DeepSeek
  • 数据类型转换
  • 项目范围管理--从规划到控制项目范围的核心思想
  • 广东省建设厅安全员b证报名网站/深圳最新疫情最新消息
  • 上海外贸网站seo/重大军事新闻
  • 网站建设属于什么职能/搜狗推广助手
  • 泰和网站制作/seo提升排名
  • 企业网站黄页怎么做/搜索引擎优化seo培训
  • 做网站的财务需求/seo推广系统排名榜