编程常用进制数转换

编程常用进制数转换

常见进制

在我们的生活中我们所接触到的数字都是基于十进制的数字,这也和我们双手有十个指头有关,这是人类社会中的数字的表示方式,比如 0-9 。然而在计算机中,只有两个数字 01 ,这通常可以用来表示电压的高低或者说是电平的高低、电路的通断,所以计算机中的所有数字和信息的存储都是基于二进制的,比如 0 1

通常我们在计算机编程中所接触到的数字也是 10 进制的,但是当我们从网络接口或者文件 IO 中获取到数据进行编码时,接触的数据就是基于二进制的,为了方便我们通常将二进制的数据转化为十六进制来展示,比如 0xABCDEF

因此本文介绍的就是常用的二进制、八进制、十进制、十六进制之间的相互转换

进制转换

JavaScript 中进制的转换主要使用 Number.parseInt()Number.prototype.toString() 方法来实现,在官方文档中接受的参数为要转换的进制数

  • Number.parseInt() 方法依据指定基数 [ 参数 radix 的值],把字符串 [ 参数 string 的值] 解析成整数。

    Number.parseInt(string[, radix])
    
  • Number.prototype.toString()方法返回指定 Number 对象的字符串表示形式。

    Number.prototype.toString([radix])
    

二进制

const binary = '0101010110';
二进制转八进制
const octal = Number.parseInt(binary, 2).toString(8);
console.log(octal)
// 526
二进制转十进制
const decimal = Number.parseInt(binary, 2);
console.log(decimal);
// 342
二进制转十六进制
const hexadecimal = Number.parseInt(binary, 2).toString(16);
console.log(hexadecimal);
// 156

八进制

const octal = '177';
八进制转二进制
const binary = Number.parseInt(octal, 8).toString(2);
console.log(binary);
// 1111111
八进制转十进制
const decimal = Number.parseInt(octal, 8);
console.log(decimal)
// 127
八进制转十六进制
const hexadecimal = Number.parseInt(octal, 8).toString(16);
console.log(hexadecimal);
// 7f

十进制

const decimal = 255;
十进制转二进制
const binary = Number.parseInt(decimal, 10).toString(2);
console.log(binary);
// 11111111
十进制转八进制
const octal = Number.parseInt(decimal, 10).toString(8);
console.log(octal);
// 377
十进制转 16 进制
const hexadecimal = Number.parseInt(decimal, 10).toString(16);
console.log(hexadecimal);
// ff

十六进制

const hexadecimal = '0xfff';
十六进制转二进制
const binary = Number.parseInt(hexadecimal, 16).toString(2);
console.log(binary);
// 111111111111
十六进制转八进制
const octal = Number.parseInt(hexadecimal, 16).toString(8);
console.log(octal);
// 777
十六进制转十进制
const decimal = Number.parseInt(hexadecimal, 16);
console.log(decimal);
// 4095

其他进制

其他的进制,我们可以参照 Number.parseInt()Number.prototype.toString() 的参数中的 redix 为相应要转换的进制数即可

更多内容

更多的内容请关注GitHub,知乎@大手印,或者关注我的公众号@全栈开发师,我会不定时分享一些全栈方向的开发内容,谢谢分享

参考

Number

Number.parseInt()

Number.prototype.toString()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mrmengj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值