如何解决parseInt 好像错了
我想将一个数字从十进制转换为二进制,我立刻想起 parseInt 也有一个基本参数,为了确定,我运行了以下代码:
parseInt('123',2);
输出是... 1?
之后我检查了 developer mozzila,第二个参数是基数,然后我尝试了基数 3,输出是 5!!!!!!这在 base 3 中是不可能的!
我做错了什么???
解决方法
radix 参数表示输入数字的基数,而不是输出数字的基数。
"redraw"
来自MDN parseInt():
parseInt('1111',2); // returns 15
基数
一个 2 到 36 之间的整数,表示基数(基数 数学数字系统)的字符串。
,输出总是一个整数。如果你真的想使用这种方法,你只能将你的情况下的二进制转换为整数。
所以如果你尝试: parseInt("10101",2) 结果是 21。这是正确的。但是在您的情况下,您向方法提供了绝对无效参数,因为您只能将 0 和 1 用于二进制输入。转换从左到右。第一个无效值将强制返回结果而无需进一步计算。
您的第一种情况: parseInt('123',2) 数字 2 是无效的二进制值。这将在 1 作为输入后完成,这是一个 1 作为整数。没错。
您的第二次尝试: parseInt('123',3)
最后一个数字 3 对于以 3 为基数的 0,1,2 作为有效数字无效。如果以 3 为基数转换数字 12,结果为 5。在我看来,该方法按预期工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。