题解 | #二进制转换#
二进制转换
https://www.nowcoder.com/practice/4123561150114d119ba41f28219a454f
{"html":"<!DOCTYPE html>\n<html>\n\n<head>\n <meta charset=\"UTF-8\">\n <style>\n /* 填写样式 */\n </style>\n</head>\n\n<body>\n <!-- 填写标签 -->\n <script type=\"text/javascript\">\n // 填写JavaScript\n function base10(str) {\n if(!isNaN(str)){\n return parseInt(str,2)\n }else{\n // 例如1101001.011010调用split()方法\n // 被切割成[\"1101001\",\"011010\"]\n const tempVal = str.toString().split(\".\")\n // 将数组的第一个元素1101001即整数部分转化为十进制\n const parVal = tempVal[0]\n const decNum = parseInt(parVal,2)\n // 将数组的第二个元素011010小数部分转化为十进制数\n const binaryFloatPartArr = tempVal[1].split(\"\") //将其转换为数组,以便调用数组特有的方法\n const eachDecimalFloatPartNum = binaryFloatPartArr.map((currentValue, index) => {\n return Number(currentValue) * Math.pow(2, (-(index + 1)))\n })\n\n // 每一次运行 reducer 会将先前元素的计算结果作为参数传入,最后将其结果汇总为单个返回值。\n const deciamlFloatPartNum = eachDecimalFloatPartNum.reduce((accumulator, currentValue)=>{return accumulator + currentValue })\n return deciamlFloatPartNum + decNum\n }\n}\n </script>\n</body>\n\n</html>","css":"","js":""}