从十进制到二进制

image.png

  1. function decimalToBinary(decNumber){
  2. const remStack = new Stack();
  3. let number = decNumber,
  4. rem,
  5. binaryString = '';
  6. while(number > 0){
  7. rem = Math.floor(number % 2);
  8. remStack.push(rem);
  9. number = Math.floor(number / 2);
  10. }
  11. while(!remStack.isEmpty()){
  12. binaryString += remStack.pop().toString();
  13. }
  14. return binaryString;
  15. }

进制转换算法

可以把十进制转换为基数为 2 ~ 36 的任意进制

  1. function baseConverter(decNumber, base){
  2. const remStack = new Stack();
  3. const digits = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  4. let number = decNumber,
  5. rem,
  6. baseString = '';
  7. while(number > 0){
  8. rem = Math.floor(number % base);
  9. remStack.push(rem);
  10. number = Math.floor(number / base);
  11. }
  12. while(!remStack.isEmpty()){
  13. binaryString += digits[remStack.pop()];
  14. }
  15. return baseString;
  16. }