C# 进制转换


Admin
2013年9月18日

名人名言:从工作里爱了生命,就是通彻了生命最深的秘密。——纪伯伦

1.请问c#中如何将十进制数的字符串转化成十六进制数的字符串

//十进制转二进制
Console.WriteLine("十进制166的二进制默示: "+Convert.ToString(166, 2));
//十进制转八进制
Console.WriteLine("十进制166的八进制默示: "+Convert.ToString(166, 8));
//十进制转十六进制
Console.WriteLine("十进制166的十六进制默示: "+Convert.ToString(166, 16));
    
//二进制转十进制
Console.WriteLine("二进制 111101 的十进制默示: "+Convert.ToInt32("111101", 2));
//八进制转十进制
Console.WriteLine("八进制 44 的十进制默示: "+Convert.ToInt32("44", 8));
//十六进制转十进制
Console.WriteLine("十六进制 CC的十进制默示: "+Convert.ToInt32("CC", 16));

2.在串口通信过程中,经常要用到 16进制与字符串、字节数组之间的转换
//

private string StringToHexString(string s,Encoding encode)
        {
            byte[] b = encode.GetBytes(s);//遵守指定编码将string编程字节数组
            string result = string.Empty;
            for (int i = 0; i < b.Length; i++)//逐字节变为16进制字符,以%隔开
            {
                result += "%"+Convert.ToString(b[i], 16);
            }
            return result;
        }
        private string HexStringToString(string hs, Encoding encode)
        {
            //以%分别字符串,并去掉空字符
            string[] chars = hs.Split(new char[]{""%""},StringSplitOptions.RemoveEmptyEntries);
            byte[] b = new byte[chars.Length];
            //逐个字符变为16进制字节数据
            for (int i = 0; i < chars.Length; i++)
            {
                b[i] = Convert.ToByte(chars[i], 16);
            }
            //遵守指定编码将字节数组变为字符串
            return encode.GetString(b);
        }

  1. 字符串转16进制字节数组
  2.         /// <summary>
  3.         /// 字符串转16进制字节数组
  4.         /// </summary>
  5.        /// <param name="hexString"></param>
  6.         /// <returns></returns>
  7.         private static byte[] strToToHexBytestring hexString
  8.         {
  9.              hexString = hexString.Replace" " "");
  10.            if ((hexString.Length  2 != 0
  11.                  hexString += " ";
  12.             byte[] returnBytes = new byte[hexString.Length / 2];
  13.             for int i = 0;< returnBytes.Length; i++)
  14.                 returnBytes[i] = Convert.ToBytehexString.Substring* 2 2), 16);
  15.             return returnBytes;
  16.          }
  1. 字节数组转16进制字符串
  2. /// <summary>
  3.         /// 字节数组转16进制字符串
  4.         /// </summary>
  5.         /// <param name="bytes"></param>
  6.         /// <returns></returns>
  7.         public static string byteToHexStrbyte[] bytes
  8.        {
  9.             string returnStr = "";
  10.             if bytes != null
  11.             {
  12.                 for int i = 0;< bytes.Length; i++)
  13.                 {
  14.                      returnStr += bytes[i].ToString"X2");
  15.                  }
  16.              }
  17.             return returnStr;
  18.          }
  1. 从汉字转换到16进制
  2. /// <summary>
  3.         /// 从汉字转换到16进制
  4.         /// </summary>
  5.         /// <param name="s"></param>
  6.         /// <param name="charset">编码,如"utf-8","gb2312"</param>
  7.         /// <param name="fenge">是否每字符用逗号分隔</param>
  8.        /// <returns></returns>
  9.         public static string ToHexstring s string charset bool fenge
  10.         {
  11.             if ((s.Length  2 != 0
  12.             {
  13.                  s += " ";//空格
  14.                 //throw new ArgumentException("s is not valid chinese string!");
  15.              }
  16.              System.Text.Encoding chs = System.Text.Encoding.GetEncodingcharset);
  17.             byte[] bytes = chs.GetBytess);
  18.             string str = "";
  19.             for int i = 0;< bytes.Length; i++)
  20.             {
  21.                 str += string.Format"{0:X}" bytes[i]);
  22.                 if fenge && != bytes.Length - 1))
  23.                 {
  24.                      str += string.Format"{0}" ",");
  25.                  }
  26.              }
  27.             return str.ToLower();
  28.          }
  1. 16进制转换成汉字
  2. ///<summary>
  3.         /// 从16进制转换成汉字
  4.         /// </summary>
  5.         /// <param name="hex"></param>
  6.         /// <param name="charset">编码,如"utf-8","gb2312"</param>
  7.        /// <returns></returns>
  8.         public static string UnHexstring hex string charset
  9.         {
  10.            if hex == null
  11.                 throw new ArgumentNullException"hex");
  12.              hex = hex.Replace"," "");
  13.              hex = hex.Replace"\n" "");
  14.              hex = hex.Replace"\\" "");
  15.              hex = hex.Replace" " "");
  16.             if hex.Length  2 != 0
  17.             {
  18.                  hex += "20";//空格
  19.              }
  20.             // 须要将 hex 转换成 byte 数组。 
  21.             byte[] bytes = new byte[hex.Length / 2];
  22.  
  23.            for int i = 0;< bytes.Length; i++)
  24.             {
  25.                 try
  26.                 {
  27.                     // 每两个字符是一个 byte。 
  28.                      bytes[i] = byte.Parsehex.Substring* 2 2),
  29.                      System.Globalization.NumberStyles.HexNumber);
  30.                  }
  31.                 catch
  32.                 {
  33.                     // Rethrow an exception with custom message. 
  34.                     throw new ArgumentException"hex is not a valid hex number!" "hex");
  35.                  }
  36.              }
  37.              System.Text.Encoding chs = System.Text.Encoding.GetEncodingcharset);
  38.             return chs.GetStringbytes);
  39.          }
  40.  
  41.  
  42.  
  43.  
  44.  /// <summary>
  45.         /// 字符串转16进制字节数组
  46.         /// </summary>
  47.         /// <param name="hexString"></param>
  48.         /// <returns></returns>
  49.         private static byte[] strToToHexBytestring hexString = "00445255303231323334233030303126313231313031313331352631323131303131333235263130233030303226313231313031313331372631323131303131333339263237"
  50.         {
  51.             hexString = hexString.Replace" " "");
  52.             if ((hexString.Length 2 != 0
  53.                 hexString += " ";
  54.             byte[] returnBytes = new byte[hexString.Length / 2];
  55.             for int i = 0; i < returnBytes.Length; i++)
  56.                 returnBytes[i] = Convert.ToBytehexString.Substringi * 2 2), 16);
  57.             Decoder dest = Encoding.GetEncoding"gb2312").GetDecoder();
  58.             char[] rst = new char[hexString.Length / 2];
  59.             dest.GetCharsreturnBytes 0 returnBytes.Length rst 0);
  60.             string aa = new stringrst);
  61.             return returnBytes;
  62.         }

C# 进制转换 在什么情况下使用16进制,字节数组,字符串的更多相关文章

  1. PHP进制转换[实现2、8、16、36、64进制至10进制相互转换]

    自己写了一个PHP进制转换程序,一个类吧,第一次写这个东东,写这个东东,在处理文本文件时能用得到.   可以实现: 10进制转换2.8.16.36.62进制2.8.16.36.62进制转换10进制 有 ...

  2. Eclipse debug模式下使用16进制(Hex)查看变量值

    转载自:http://blog.csdn.net/jinhill/article/details/5767035 因为工作中需要查看byte[]原始编码,eclipse中debug模式下默认查看byt ...

  3. ubuntu下以16进制形式查看class文件、反编译class文件

    参考:https://blog.csdn.net/xyh930929/article/details/83860464 1.vim HelloWorld.class 2.输入英文状态下的冒号:,然后输 ...

  4. 【进制转换】codevs 1474 十进制转m进制

    #include<cstdio> using namespace std; ],en; int main() { scanf("%d%d",&n,&m) ...

  5. iOS蓝牙中的进制转换

    Bluetooth4.0.jpg 最近在忙一个蓝牙项目,在处理蓝牙数据的时候,经常遇到进制之间的转换,蓝牙处理的是16进制(NSData),而我们习惯的计数方式是10进制,为了节省空间,蓝牙也会把16 ...

  6. [转]Java中byte与16进制字符串的互相转换

    Java中byte用二进制表示占用8位,而我们知道16进制的每个字符需要用4位二进制位来表示(23 + 22 + 21 + 20 = 15),所以我们就可以把每个byte转换成两个相应的16进制字符, ...

  7. Python 16进制与字符串的转换

    电脑上装了Python2.7和3.3两个版本,平时运行程序包括在Eclipse里面调试都会使用2.7,但是由于某些原因在cmd命令行中输入python得到的解释器则是3.3, 一直没对此做处理,因为这 ...

  8. 颜色转换、随机、16进制转换、HSV

    颜色转换.随机.16进制转换.HSV: /** * * *-----------------------------------------* * | *** 颜色转换.随机.16进制转换.HSV * ...

  9. iOS蓝牙中的进制转换,数据格式转换

    最近在忙一个蓝牙项目,在处理蓝牙数据的时候,经常遇到进制之间的转换,蓝牙处理的是16进制(NSData),而我们习惯的计数方式是10进制,为了节省空间,蓝牙也会把16进制(NSData)拆成2进制记录 ...

随机推荐

  1. 彻查网络局部网段内Ping时断时续的问题

    前两天须要安装2台server,结果前期一直有问题的网络又来了,明明vlan内能ping通,可是与vlan外却ping不同. 这个现象非常像是arp病毒,于是周末的时间我们就进行了一次彻底的排查,一定 ...

  2. 项目融入mongoDB

    1.pom.xml导入jar包           <!-- mongoDB -->         <dependency>           <groupId> ...

  3. Spring boot 解析jsp支持jsp热部署

    解析jsp并且支持jsp热部署 参考地址:https://www.wanpishe.top/detail?blogId=39875536-7d45-48ec-a7b5-f36b85c3a235

  4. nodejs学习(二)--express热更新nodemon,自启动项目

    一.说一下 每次修改文件,我们都需要重启服务器npm start,很麻烦,所以使用引入nodemon插件,解决这个问题,实现保存文件,即自启动刷新项目 二.直接开码 npm install nodem ...

  5. 雷观(二十三)-IT互联网技术,不拼创新拼努力,特别低公平

    上次发表"雷观(二十二)"是在2015年3月7日,一转眼,就快到了11月.  前段时间,终于狠下心来,写了本篇,第二十三啦.  小雷同志,要加油了~  早日达到百篇雷观的里程碑~  ...

  6. 【2017 Multi-University Training Contest - Team 4】Counting Divisors

    [Link]:http://acm.hdu.edu.cn/showproblem.php?pid=6069 [Description] 定义d(i)为数字i的因子个数; 求∑rld(ik) 其中l,r ...

  7. inode与ln命令

    inode可以看: http://www.cnblogs.com/itech/archive/2012/05/15/2502284.html 每个inode节点的大小,一般是128字节或256字节.i ...

  8. 下载新浪android SDK

    下载新浪android SDK 必须去官网 开放平台下载 http://open.weibo.com/ 下载SDK 点击进入之后,看到的界面例如以下: 然后下载android SDK就可以.假设基于别 ...

  9. java.lang.ClassNotFoundException: org.springframework.web.content.ContextLoaderListener

    1.错误描写叙述 严重: Error configuring application listener of class org.springframework.web.content.Context ...

  10. 李笑来~执行力WWH

    什么是秘密 秘密是指只有极少数人知道的实用信息.这个实用信息可以为知道且懂得运用的人获得收益,这个收益可能包括钱.名声和快感. 什么是执行力 执行力=What + Why + How,即WWH 执行力 ...