zoukankan      html  css  js  c++  java
  • 各进制数间转换

    #region 各进制数间转换
    /// <summary>
    /// 实现各进制数间的转换。ConvertBase("15",10,16)表示将十进制数15转换为16进制的数。
    /// </summary>
    /// <param name="value">要转换的值,即原值</param>
    /// <param name="from">原值的进制,只能是2,8,10,16四个值。</param>
    /// <param name="to">要转换到的目标进制,只能是2,8,10,16四个值。</param>
    public static string ConvertBase(string value, int from, int to)
    {
    if (!isBaseNumber(from))
    throw new ArgumentException("参数from只能是2,8,10,16四个值。");

    if (!isBaseNumber(to))
    throw new ArgumentException("参数to只能是2,8,10,16四个值。");

    int intValue = Convert.ToInt32(value, from); //先转成10进制
    string result = Convert.ToString(intValue, to); //再转成目标进制
    if (to == 2)
    {
    int resultLength = result.Length; //获取二进制的长度
    switch (resultLength)
    {
    case 7:
    result = "0" + result;
    break;
    case 6:
    result = "00" + result;
    break;
    case 5:
    result = "000" + result;
    break;
    case 4:
    result = "0000" + result;
    break;
    case 3:
    result = "00000" + result;
    break;
    }
    }
    return result;
    }

    /// <summary>
    /// 判断是否是 2 8 10 16
    /// </summary>
    /// <param name="baseNumber"></param>
    /// <returns></returns>
    private static bool isBaseNumber(int baseNumber)
    {
    if (baseNumber == 2 || baseNumber == 8 || baseNumber == 10 || baseNumber == 16)
    return true;
    return false;
    }

    #endregion

  • 相关阅读:
    solr7.7.0 添加core (二)
    centos 安装solr7.7+tomcat8.5.31+jdk1.8 环境搭建(一)
    springboot 切面编程 日志模块
    Mysql 优化
    mysql查询某个字段中是否有重复的值
    php for循环字母
    layui.table.toolbar里的内容加判断
    phpmyadmin 导入大文件配置
    解决laravel5.2 使用ajax时的 VerifyCsrfToken问题
    火狐浏览器禁止缓存
  • 原文地址:https://www.cnblogs.com/zhangxiaolei521/p/5600309.html
Copyright © 2011-2022 走看看