public static class IntHelper
{
/// <summary>
/// 转换为2进制字符串
/// </summary>
/// <param name="num"></param>
/// <returns></returns>
public static string To2Base(this int num)
{
return Convert.ToString(num, );
} /// <summary>
/// 转换为8进制字符串
/// </summary>
/// <param name="num"></param>
/// <returns></returns>
public static string To8Base(this int num)
{
return Convert.ToString(num, );
} /// <summary>
/// 转换为16进制字符串
/// </summary>
/// <param name="num"></param>
/// <returns></returns>
public static string To16Base(this int num)
{
return Convert.ToString(num, );
} /// <summary>
/// 2进制字符串转换为int
/// </summary>
/// <param name="numStr"></param>
/// <returns></returns>
public static int From2Base(this string numStr)
{
return Convert.ToInt32(numStr, );
} /// <summary>
/// 8进制字符串转换为int
/// </summary>
/// <param name="numStr"></param>
/// <returns></returns>
public static int From8Base(this string numStr)
{
return Convert.ToInt32(numStr, );
} /// <summary>
/// 16进制字符串转换为int
/// </summary>
/// <param name="numStr"></param>
/// <returns></returns>
public static int From16Base(this string numStr)
{
return Convert.ToInt32(numStr, );
} /// <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 < || xBase > )
{
throw new ArgumentOutOfRangeException("参数值不在2~36的范围内");
} if (xBase == ) return number.ToString(); int n = xBase;
int q = number;
int r;
string rtn = ""; while (q >= n)
{
r = q % n;
q = q / n; if (r < )
rtn = r.ToString() + rtn;
else
rtn = Convert.ToChar(r + ).ToString() + rtn; } if (q < )
{
rtn = q.ToString() + rtn;
}
else
{
rtn = Convert.ToChar(q + ).ToString() + rtn;
} return rtn;
} /// <summary>
/// 判断是否为素数
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public static bool IsPrime(this ulong value)
{
//质数(素数)定义为在大于1的自然数中
if (value > )
{
//除了2的偶数都是合数
if (value.IsEvenNumber())
{
//2是特殊的素数
return value == ;
} for (ulong i = ; (i * i) <= value; i += )
{
if ((value % i) == )
{
return false;
}
} return value != ;
} return false;
} /// <summary>
/// 是否是偶数
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public static bool IsEvenNumber(this long value)
{
if (value < )
{
value = value * -;
} //value & 1==0则必为偶数
return (value & ) == ;
} /// <summary>
/// 是否是偶数
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public static bool IsEvenNumber(this ulong value)
{
//value & 1==0则必为偶数
return (value & ) == ;
} /// <summary>
/// 是否是奇数
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public static bool IsOddNumber(this ulong value)
{
//value & 1==0则必为偶数
return (value & ) > ;
}
}

c#工具类之Int扩展类的更多相关文章

  1. [Django REST framework - 视图组件之视图基类、视图扩展类、视图子类、视图集]

    [Django REST framework - 视图组件之视图基类.视图扩展类.视图子类.视图集] 视图继承关系 详图见文章末尾 视图组件可点我查看 两个视图基类:APIView.GenericAP ...

  2. C#工具类之素数扩展类

    /// <summary> /// 素数帮忙类 /// 本类是从.net源码 类 internal static class HashHelpers 类里抽取相应的代码 /// https ...

  3. C#工具类之字符串扩展类

    /// <summary> /// 字典串帮忙类 /// </summary> public static class StringHelper { /// <summa ...

  4. C#工具类之字典扩展类

    using System; using System.Collections; using System.Collections.Generic; using System.Linq; using S ...

  5. C#工具类之日期扩展类

    /// <summary> /// DateTimeHelper /// </summary> public static class DateTimeHelper { /// ...

  6. C#工具类之XmlNode扩展类

    using System; using System.Linq; using System.Xml; /// <summary> /// XmlNodeHelper /// </su ...

  7. ios开发总结:Utils常用方法等收集,添加扩展类,工具类方法,拥有很多方便快捷功能(不断更新中。。。)

    BOBUtils 工具大全 本人github开源和收集功能地址:https://github.com/niexiaobo [对ios新手或者工作一年以内开发人员很有用处] 常用方法等收集.添加扩展类. ...

  8. DRF框架(五)——context传参,二次封装Response类,两个视图基类(APIView/GenericAPIView),视图扩展类(mixins),子类视图(工具视图),视图集(viewsets),工具视图集

    复习 1.整体修改与局部修改 # 序列化get (给前端传递参数) #查询 ser_obj = ModelSerializer(model_obj) #只传递一个参数,默认是instance的参数,查 ...

  9. Java+7入门经典 - 6 扩展类与继承 Part 1/2

    第6章 扩展类与继承 面向对象编程的一个重要特性: 允许基于已定义的类创建新的类; 6.1 使用已有的类 派生 derivation, 派生类 derived class, 直接子类 direct s ...

随机推荐

  1. struts2学习笔记(4)接收参数

    ①用action属性接收 登录界面例子 在webroot下创建login.jsp和success.jsp login.jsp中加入表单: <form action="LoginActi ...

  2. 异常 android.content.res.Resources$NotFoundException: String resource ID #0x61

    09-09 16:08:41.554: E/Weaver(13140):09-09 16:08:41.554: E/Weaver(13140): android.content.res.Resourc ...

  3. android手机分辨率的一些说明

    Android上常见度量单位 px(像素):屏幕上的点,绝对长度,与硬件相关 in(英寸):长度单位 mm(毫米):长度单位 pt(磅):1/72英寸,point dp(与密度无关的像素):一种基于屏 ...

  4. pageBean实现分页

    PageBean类 package com.xujingyang.domain ; import java.util.List ; /** * @author oldmonk * @date 2017 ...

  5. SQL 连贯操作 [2]

    1.alias 用于设置数据表别名 $user = M('User'); var_dump($user->alias('anothername')->select()); 这时在SQL中的 ...

  6. tee 可以看见输出并将其写入到一个文件中

    如下使用tee命令在屏幕上看见输出并同样写入到日志文件my.log中:   [root@localhost home]# top  |tee my.log   tee可以保证你同时在屏幕上看到top的 ...

  7. Luogu 3939 数颜色

    随手点开一个题. 咦,这不是裸的动态开点线段树吗?写一个写一个…… Code: #include <cstdio> #include <cstring> using names ...

  8. 2015年阿里实习生面试Java研发工程师 小记

    5月5日,广州,阿里实习生面试,Java研发工程师,完全被虐orz 几乎没有Java项目开发经验,接近零基础,去水了一发,毫无悬念的被刷了..RP也是杠杠的,准备过的题目一个都没被问到,算法题也是一条 ...

  9. 使用bat一键打开java、jar、py文件

    直接运行jar是没有命令行窗口的,如果想有命令行窗口,一般来说是要 win+r 运行cmd,定位到所在目录,然后用命令行执行 java -jar xxx.jar 而对于python,打开py文件也是麻 ...

  10. JOptionPane如何自定义按钮绑定事件

    JOptionPane如何自定义按钮绑定事件 2018年01月29日 19:27:10 阅读数:475 摘自:https://blog.csdn.net/m0_37355951/article/det ...