只考虑了正整数的情况
class wei {
constructor(arr) {
// arr 记录二进制位数
this.arr = arr;
this.fuFlag = false;
}
// 整数 % 2
tenTo2ForInt(val) {
this.judgeFu(val);
this.chu2(val);
}
chu2(val) {
let yu = val % 2; // 余数
let shang = parseInt(val / 2);// 商
this.arr.unshift(yu);
if (shang > 1) {
this.chu2(shang);
}else{
this.arr.unshift(shang);
}
}
// 小数 * 2
tenTo2ForFlat(val) {
}
judgeFu(val) {
if (val >= 0) { // 整数
this.fuFlag = true;
} else { // 负数
this.fuFlag = false;
}
}
}
String.prototype.toS = function (param) {
let value = this.valueOf();
let wei1 = new wei([]);
if (!isNaN(Number(value))) { // 是一个数
// 是不是小数
if (value.includes('.')) {
// 小数
} else {
// 整数
wei1.tenTo2ForInt(Number(value));
return Number(wei1.arr.join(''));
}
} else { // 不是一个数
throw ("不是一个数")
}
}
console.log('4'.toS());