Open zhangsanshi opened 8 years ago
可能一般的方法是转成10进制,再进行转换 今天想到一个新的办法, 举一个例子
var map = { 0: 0, 1: 1, 10: 2, 11: 3, 100: 4, 101: 5, 110: 6, 111: 7 }; function $2to8 (num) { var result = ''; var tmp = ''; for (var i = num.length; i >= 0; i = i - 3) { tmp = num.substring(i - 3 , i); if (tmp) { result = map[tmp - 0] + result; } } return result; }
想法很简单,2进制转8进制,把2进制字符串分成3个一组,换算成8进制,同理16进制 8进制转2进制,则把每一位拆成3位,不足补0即可 随手测试了下,速度还是可以看的:)
可能一般的方法是转成10进制,再进行转换 今天想到一个新的办法, 举一个例子
想法很简单,2进制转8进制,把2进制字符串分成3个一组,换算成8进制,同理16进制 8进制转2进制,则把每一位拆成3位,不足补0即可 随手测试了下,速度还是可以看的:)