C#里怎么样快速判断一个数是否为2多少次方的数?
C#里怎么样快速判断一个数是否为2多少次方的数?
在开发里,经常会遇到需要计算判断一个数是否为2的多少方的数,
因为计算机是按二进制来设计的,
那么所有内存分配,以及磁盘分配,都是按2的多少次方的大小来分配的,
这样就会让计算机运算的效率达到最好的水平。
所以怎么样快速判断一个数是否为2的多少次方,就比较有意义了。
在这里采用位运算来进行,如下:
((num & -num) == num)
这里num是要判断的数,-num是num的负数,即补码,然后进行与运算,最后判断是否等于原来的数。
使用例子演示如下:
/*
* C# Program to Find Power of 2 using Bitwise Operator
*/
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
namespace example
{
internal class Program
{
private static void Main(string[] args)