zoukankan      html  css  js  c++  java
  • c#工具类之Int扩展类

     public static class IntHelper
        {
            /// <summary>
            /// 转换为2进制字符串
            /// </summary>
            /// <param name="num"></param>
            /// <returns></returns>
            public static string To2Base(this int num)
            {
                return Convert.ToString(num, 2);
            }
    
            /// <summary>
            /// 转换为8进制字符串
            /// </summary>
            /// <param name="num"></param>
            /// <returns></returns>
            public static string To8Base(this int num)
            {
                return Convert.ToString(num, 8);
            }
    
            /// <summary>
            /// 转换为16进制字符串
            /// </summary>
            /// <param name="num"></param>
            /// <returns></returns>
            public static string To16Base(this int num)
            {
                return Convert.ToString(num, 16);
            }
    
            /// <summary>
            /// 2进制字符串转换为int
            /// </summary>
            /// <param name="numStr"></param>
            /// <returns></returns>
            public static int From2Base(this string numStr)
            {
                return Convert.ToInt32(numStr, 2);
            }
    
            /// <summary>
            /// 8进制字符串转换为int
            /// </summary>
            /// <param name="numStr"></param>
            /// <returns></returns>
            public static int From8Base(this string numStr)
            {
                return Convert.ToInt32(numStr, 8);
            }
    
            /// <summary>
            /// 16进制字符串转换为int
            /// </summary>
            /// <param name="numStr"></param>
            /// <returns></returns>
            public static int From16Base(this string numStr)
            {
                return Convert.ToInt32(numStr, 16);
            }
    
            /// <summary>
            /// 将自然数转换了N进制字符串
            /// </summary>
            /// <param name="number">自然数</param>
            /// <param name="xBase">N进制(2~36之间)</param>
            /// <returns>N进制字符串</returns>
            public static string ToXBase(this int number, int xBase)
            {
                if (xBase < 2 || xBase > 36)
                {
                    throw new ArgumentOutOfRangeException("参数值不在2~36的范围内");
                }
    
                if (xBase == 10) return number.ToString();
    
                int n = xBase;
                int q = number;
                int r;
                string rtn = "";
    
                while (q >= n)
                {
                    r = q % n;
                    q = q / n;
    
                    if (r < 10)
                        rtn = r.ToString() + rtn;
                    else
                        rtn = Convert.ToChar(r + 55).ToString() + rtn;
    
                }
    
                if (q < 10)
                {
                    rtn = q.ToString() + rtn;
                }
                else
                {
                    rtn = Convert.ToChar(q + 55).ToString() + rtn;
                }
    
                return rtn;
            }
    
            /// <summary>
            /// 判断是否为素数
            /// </summary>
            /// <param name="value"></param>
            /// <returns></returns>
            public static bool IsPrime(this ulong value)
            {
                //质数(素数)定义为在大于1的自然数中
                if (value > 1)
                {
                    //除了2的偶数都是合数
                    if (value.IsEvenNumber())
                    {
                        //2是特殊的素数
                        return value == 2;
                    }
    
                    for (ulong i = 3; (i * i) <= value; i += 2)
                    {
                        if ((value % i) == 0)
                        {
                            return false;
                        }
                    }
    
                    return value != 1;
                }
    
                return false;
            }
    
            /// <summary>
            /// 是否是偶数
            /// </summary>
            /// <param name="value"></param>
            /// <returns></returns>
            public static bool IsEvenNumber(this long value)
            {
                if (value < 0)
                {
                    value = value * -1;
                }
    
                //value & 1==0则必为偶数
                return (value & 1) == 0;
            }
    
            /// <summary>
            /// 是否是偶数
            /// </summary>
            /// <param name="value"></param>
            /// <returns></returns>
            public static bool IsEvenNumber(this ulong value)
            {
                //value & 1==0则必为偶数
                return (value & 1) == 0;
            }
    
            /// <summary>
            /// 是否是奇数
            /// </summary>
            /// <param name="value"></param>
            /// <returns></returns>
            public static bool IsOddNumber(this ulong value)
            {
                //value & 1==0则必为偶数
                return (value & 1) > 0;
            }
        }
  • 相关阅读:
    React Native区分安卓/iOS平台
    yarn命令使用
    React 源码剖析系列 - 不可思议的 react diff
    dangerouslySetInnerHTMl
    iOS12下APP进入后台后再返回前台连接断开
    AttributedString-富文本字符串
    Bundle创建与使用
    UIButton-详解
    实战项目-百思不得姐-精华
    iOS 抖音个人主页布局开发(简单)
  • 原文地址:https://www.cnblogs.com/zhshlimi/p/6668259.html
Copyright © 2011-2022 走看看