Advertisement
Guest User

Untitled

a guest
Jul 10th, 2017
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import { Component } from '@angular/core';
  2.  
  3. @Component({
  4.   selector: 'app-root',
  5.   templateUrl: './app.component.html',
  6.   styleUrls: ['./app.component.css']
  7. })
  8. export class AppComponent {
  9.   number: number;
  10.   hasValidNumber: boolean;
  11.   numberBinary: string;
  12.   private _numberRegex: RegExp = new RegExp("^[0-9]+$");
  13.   private _numberString: string = "";
  14.  
  15.   get numberString(): string {
  16.     return this._numberString;
  17.   }
  18.  
  19.   set numberString(newNumberString: string) {
  20.     this._numberString = newNumberString;
  21.     this.hasValidNumber = this.validateNumber(newNumberString);
  22.  
  23.     if (this.hasValidNumber) {
  24.       this.number = AppComponent.stringToNumber(newNumberString);
  25.       this.numberBinary = AppComponent.numberToBinary(this.number);
  26.     }
  27.   }
  28.  
  29.   private validateNumber(numberString: string): boolean {
  30.     return this._numberRegex.test(numberString);
  31.   }
  32.  
  33.   private static stringToNumber(numberString: string): number {
  34.     let convertedNumber: number = 0;
  35.     let numberStringLength: number = numberString.length;
  36.     let currentMultiplier: number = 1;
  37.     let zeroCharCode: number = "0".charCodeAt(0);
  38.  
  39.     for (let i: number = numberStringLength - 1; i >= 0; i--) {
  40.       let currentCharCode = numberString.charCodeAt(i);
  41.       convertedNumber += (currentCharCode - zeroCharCode) * currentMultiplier;
  42.       currentMultiplier *= 10;
  43.     }
  44.  
  45.     return convertedNumber;
  46.   }
  47.  
  48.   private static numberToBinary(number: number): string {
  49.     let numberBinaryRepresentation: string = "";
  50.  
  51.     while (number != 0) {
  52.       numberBinaryRepresentation += (number & 1) == 0 ? "0" : "1";
  53.       number >>= 1;
  54.     }
  55.  
  56.     return numberBinaryRepresentation.split("").reverse().join("");
  57.   }
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement