Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Semrush - keyword research tool

Turn ChatGPT, Claude, Gemini, And CoPilot Into Your Personal Assistant, Business Coach, Content Creator, And More

AFFILIATE MARKETING Your all-in-one performance engine Manage affiliates, creators, and customer referrals in one unified platform—turning every partnership into measurable growth
Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

42,709 questions

55,473 answers

573 users

How to write 4 different functions that check if a number is a power of 2 in TypeScript

1 Answer

0 votes
// Method A: Bit-counting
function isPowerOfTwoA(x: number): boolean {
    if (x <= 0) return false;
    return x.toString(2).split("1").length - 1 === 1;
}

// Method B: Bitwise trick
function isPowerOfTwoB(x: number): boolean {
    return x > 0 && (x & (x - 1)) === 0;
}

// Method C: Repeated division
function isPowerOfTwoC(x: number): boolean {
    if (x <= 0) return false;
    while (x % 2 === 0) {
        x /= 2;
    }
    return x === 1;
}

// Method D: Using logarithms
function isPowerOfTwoD(x: number): boolean {
    if (x <= 0) return false;
    const logv = Math.log2(x);
    return Math.abs(logv - Math.round(logv)) < 1e-10;
}

const test1 = 16; // true
const test2 = 18; // false

console.log("A:", isPowerOfTwoA(test1), ",", isPowerOfTwoA(test2));
console.log("B:", isPowerOfTwoB(test1), ",", isPowerOfTwoB(test2));
console.log("C:", isPowerOfTwoC(test1), ",", isPowerOfTwoC(test2));
console.log("D:", isPowerOfTwoD(test1), ",", isPowerOfTwoD(test2));


/*
OUTPUT:

A: true , false
B: true , false
C: true , false
D: true , false

*/

 



answered Apr 2 by avibootz

Related questions

...