将二进制变成十进制一般都是用parseInt(二进制代码,2),但是最近发现parseInt(010,2)和parseInt("010",2)竟然不一样?

仔细一想好像确实这么回事,因为parseInt(010,2);中的010,会在转换前变成8(0开头为8进制,010为十进制的8),那么parseInt(8,2)就是NAN了(2进制只有0和1)。

一般1开头的打不打引号没啥关系:

但是也不全是,例如一个32位,但是是1打头的:

为啥parseInt(111111111111111111111111111111,2);是1呢,因它太大了,它的结果是为1.111111111111111e+29。会变成parseInt(1,2),因此是1。

因此最安全的将二进制转十进制,需要将二进制串打引号。

其他文章

0
我要评论

评论

返回
×

我要评论

回复:

昵称:(昵称不超过20个字)

图片:

提交
还可以输入500个字