TCP进制转换

      /// <summary>
      /// 将十六进制字符串转化为字节数组
      /// </summary>
      /// <param name="src"></param>
      /// <returns></returns>
      public byte[] HexString2Bytes(string src)
      {
          byte[] retBytes = new byte[src.Length / 2];

          for (int i = 0; i < src.Length / 2; i++)
          {
              retBytes[i] = byte.Parse(src.Substring(i * 2, 2), System.Globalization.NumberStyles.AllowHexSpecifier);
          }

          return retBytes;
      }
           /// <summary>
      /// 字符串转16进制
      /// </summary>
      /// <param name="mHex"></param>
      /// <returns>返回十六进制代表的字符串</returns>
      public  string HexToStr(string mHex,bool isuft8=false) // 返回十六进制代表的字符串
      {
          if (isuft8 == false)
          {
              byte[] bTemp = System.Text.Encoding.Default.GetBytes(mHex);
              string strTemp = "";
              for (int i = 0; i < bTemp.Length; i++)
              {
                  strTemp += bTemp[i].ToString("X");
              }
              return strTemp;

          }
          else
          {
              byte[] bTemp = System.Text.Encoding.UTF8.GetBytes(mHex);
              string strTemp = "";
              for (int i = 0; i < bTemp.Length; i++)
              {
                  strTemp += bTemp[i].ToString("X");
              }
              return strTemp;
          }
      }
      /// <summary>
      /// 十六进制换算为十进制
      /// </summary>
      /// <param name="strColorValue"></param>
      /// <returns></returns>
      public static int GetHexadecimalValue(String strColorValue)
      {
          char[] nums = strColorValue.ToCharArray();
          int total = 0;
          try
          {
              for (int i = 0; i < nums.Length; i++)
              {
                  String strNum = nums[i].ToString().ToUpper();
                  switch (strNum)
                  {
                      case "A":
                          strNum = "10";
                          break;
                      case "B":
                          strNum = "11";
                          break;
                      case "C":
                          strNum = "12";
                          break;
                      case "D":
                          strNum = "13";
                          break;
                      case "E":
                          strNum = "14";
                          break;
                      case "F":
                          strNum = "15";
                          break;
                      default:
                          break;
                  }
                  double power = Math.Pow(16, Convert.ToDouble(nums.Length - i - 1));
                  total += Convert.ToInt32(strNum) * Convert.ToInt32(power);
              }

          }
          catch (System.Exception ex)
          {
              String strErorr = ex.ToString();
              return 0;
          }

          return total;
      }
时间: 2024-08-10 19:16:54

TCP进制转换的相关文章

常用进制转换

原文:常用进制转换 最近的工作中,需要接触到一些硬件设备,处理这些设备的通讯,因此需要进行一些进制的转换.      其实,二进制.十六进制这些基本的知识,在我们刚学编程的时候,基础课应该已经讲过的了.但是,包括我自己在内,当时也仅仅是知道一般的换算规则,但是具体怎么应用,在c#中又是如何表示,也是近期才有比较深的体会.      具体的知识,各位就自己查看相关的基础知识了,这里我只给出自己在工作中的体会和实际的类库.      首先,先解释下C#的类型.一般,我们常用的有 byte.short

网络的参考模型。和进制转换

1,网络参考模型 :网络世界的游戏规则 OSI模型--- 开放式系统互连模型-ISO 国际标准化组织TCP/IP模型--一组或者多协议的集合-IEEE 电子电气工程师协会2,OSI七层模型应用层--------用户的接口数据 表示层--------编码解码/加密解密等 会话层--------会话的连接管理数据段-传输层--------分段:端到端的连接数据包-网络层-------- 数据包封装,寻址和路由(选路)数据帧-数据链路层---- 数据帧封装,MAC地址(物理地址)传输数据校验比特 -物

任意进制转换算法

任意进制转换算法 N年没有写博客,发个进制转换的玩下,支持负数:功能属于简化版的 Convert.ToInt32 ,特点是: 1.任意位,如:0,1(二进制),0...7(八进制),0...9,A...F(16进制),0...N(N进制),或者是:[email protected]#$%^&*(8进制,字符符号),也可以是中文. 2.8 byte 最大长度. 3.C#源码. 最近写markdown格式习惯啦,cnblogs啥时候全改掉算了,别用这个htmleditor算了. 先说明下进制转换的基

03 php 数据类型:整数,进制转换,浮点,字符,布尔,数组,空类型,类型转换,算术运算,比较运算

03 数据类型:整数,进制转换,浮点,字符,布尔,数组,空类型,类型转换, 算术运算,比较运算,逻辑运算,短路现象, 三目运算符,字符型运算: 数据类型 整体划分 标量类型: int, float, string, bool 复合类型: array,     object 特殊类型: null,     resouce 整数类型int, integer 3种整数表示法 十进制写法:123: $n1 = 123; 八进制写法: 0123 $n2 = 0123; 十六进制写法: 0x123 $n3

计算机进制转换

一.计算机只认识0和1,二进制. 二.2进制转换成 8进制 和 16进制,如下图: 二进制 > 八进制 :  研究上图发现,3位最高二进制可以用来表示一位八进制.所以,将二进制分解每3位,不够前面补0,然后每3位转换为10进制,顺序排列即可. 二进制 > 十六进制  :4位最高二进制可以用来表示一位十六进制.所以,将二进制分解每4位,不够前面补0,然后每4位转换为10进制,超过9用字母表示即可.顺序排列即可. 如下: 二进制 > 十进制:   11001001 = 2^7+2^6+2^3

原理之一,进制转换

原理之一,进制转换 日常生活中采用个数字都是十进制,而计算机采用的是运算更简单.易实现且可靠,为逻辑设计提供了有力途经的二进制,除此之外还有八进制和十六进制作为二进制的缩写. 进制:逢N进一,N是每种进位计数制表示一位数所需要的符号数目为基数. 二进制:逢二进一,借一当二,包含的数字(0.1) 八进制:逢八进一,借八当一,包含(0.1.2.3.4.5.6.7) 十六进制:逢十六当一,以一当十六,包含(0.1.2.3.4.5.6.7.8.9.10(A).11(B).12(C).13(D).14(E

NOIP2000 进制转换

题一   进制转换              (18分)  问题描述      我们可以用这样的方式来表示一个十进制数: 将每个阿拉伯数字乘以一个以该数字所处位置的(值减1)为指数,以10为底数的幂之和的形式.例如:123可表示为 1*102+2*101+3*100这样的形式. 与之相似的,对二进制数来说,也可表示成每个二进制数码乘以一个以该数字所处位置的(值-1)为指数,以2为底数的幂之和的形式.一般说来,任何一个正整数R或一个负整数-R都可以被选来作为一个数制系统的基数.如果是以R或-R为基

进制进制进制~转换

从刚学计算机器就对进制转换有着莫名的反感,2进制 8进制 10进制 16进制各种转换. 下面就说下逻辑地址转换成物理地址的求法吧 首先,用户输入一个16进制的数字cin>>hex>>logic_add;   hex的意思是告诉计算机输入的数是以16进制方式输入的 这个时候你要是输出cout<<logic_add;  你会发现输出的是把这个16进制的数转换为10进制以后输出的结果 cout<<hext<<logic_add;这样输出的才是16进制.

黑马程序员------进制转换

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 在java中数字的表现形式一般有二进制,八进制,十进制,十六进制等,在平时的编程中我们可以通过java提供的API函数方便的实现各个进制间的转换,如:Integer.toHexString(int i)--十进制转十六进制:Integer