浅谈js的数字格式

除了正常我们常用的十进制(如5,8,12.123等),js还可以直接表示2、8、16进制

1.二进制

二进制是以0b开头

0b10; //2

2.八进制

八进制是以0开头

010; //8

3.十六进制

十六进制是以0x开头

0x10; //16

可以看出js虽然是支持2、8、16进制,但是它最后得出结果的时候仍然把数字转为10进制,如果我们需要结果是2、8、16进制形式的话我们有一个方法:

toString(radix) 把10进制数字解析成几进制

var x = 255;
x.toString('16'); //"ff"

4.解析成其他进制

上面都是10进制到其他进制的转化(实际大小不会变化),但如果想把数字解析为其他进制(把数字看成不同进制,实际大小会变化),如想把12解析成4进制,可以写成parseInt(12,4) ; //6 = 1*4+2

parseInt

parseInt(num,radix) 其中36>radix>2,radix是用几进制来解析这个数字(parseFloat没有这个功能)

//80用16进制来解析当然就是128了
parseInt(80,16); //128 = 8*16

//改变解析进制数,只能选比该数字所有位都大的数
//如80,只能选9以上,不然会解析不了而返回NaN
parseInt(80,8); //NaN

//注意大于10进制的进制数一定要用字符串来表示,不然会报错
//如果用0x15这样形式,js会先将其转化为21,最后结果就不会是预期的结果了
parseInt('ag',18); //196 = 10*18+16

 

转载于:https://www.cnblogs.com/amiezhang/p/7940067.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值