Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import { Component } from '@angular/core';
- @Component({
- selector: 'app-root',
- templateUrl: './app.component.html',
- styleUrls: ['./app.component.css']
- })
- export class AppComponent {
- number: number;
- hasValidNumber: boolean;
- numberBinary: string;
- private _numberRegex: RegExp = new RegExp("^[0-9]+$");
- private _numberString: string = "";
- get numberString(): string {
- return this._numberString;
- }
- set numberString(newNumberString: string) {
- this._numberString = newNumberString;
- this.hasValidNumber = this.validateNumber(newNumberString);
- if (this.hasValidNumber) {
- this.number = AppComponent.stringToNumber(newNumberString);
- this.numberBinary = AppComponent.numberToBinary(this.number);
- }
- }
- private validateNumber(numberString: string): boolean {
- return this._numberRegex.test(numberString);
- }
- private static stringToNumber(numberString: string): number {
- let convertedNumber: number = 0;
- let numberStringLength: number = numberString.length;
- let currentMultiplier: number = 1;
- let zeroCharCode: number = "0".charCodeAt(0);
- for (let i: number = numberStringLength - 1; i >= 0; i--) {
- let currentCharCode = numberString.charCodeAt(i);
- convertedNumber += (currentCharCode - zeroCharCode) * currentMultiplier;
- currentMultiplier *= 10;
- }
- return convertedNumber;
- }
- private static numberToBinary(number: number): string {
- let numberBinaryRepresentation: string = "";
- while (number != 0) {
- numberBinaryRepresentation += (number & 1) == 0 ? "0" : "1";
- number >>= 1;
- }
- return numberBinaryRepresentation.split("").reverse().join("");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement