加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

预定义的基础类型转换

发布时间:2020-12-14 03:48:00 所属栏目:大数据 来源:网络整理
导读:一、BitConverter 将预定义的基础类型与字节数据进行互转 1、将值类型转成字节数组(Unicode) byte[] data=BitConverter.GetBytes(**) eg:’哈’=[200,84],‘1‘=[49,0],1.2 =[8个元素];true=1 2、将字节数组转成值类型 xx data=BitConverter.ToXX(byte[],of

一、BitConverter 将预定义的基础类型与字节数据进行互转

1、将值类型转成字节数组(Unicode)

byte[] data=BitConverter.GetBytes(**)

eg:’哈’=>[200,84],‘1‘=[49,0],1.2 =>[8个元素];true=>1

2、将字节数组转成值类型

xx data=BitConverter.ToXX(byte[],offset)

eg: BitConverter.ToChar(new byte[]{200,84},0))=>’哈’ ;BitConverter.ToInt16(new bintyte[]{69,0},0))=>69;

3、将字节数组中每个元素值转成十六进制表示:

BitConverter.ToString(new byte[]{69,0,128);">0},128);">0)

结果: 45-00-00-00

注意:跟BitConverter.IsLittleEndian属性有关,true表示最大的有效字节位于单词的右端。

    整数 对应的十六进制数 转成字节数组 字节数据每个字节对应的十六进制表示
    1 1 [1,0] 01 00 00 00
    65540 10004 [4,1,0] 04 00 01 00
    999999999 3B9AC9FF [255,201,154,59] FF C9 9A 3B

二、字符与ASCII码转化:

一个ASCII码占一个字节,其中一个为检验位。共27=128个字符,只适合所有的拉丁字母。

1、字符转成ASCII码:

Convert.ToByte(‘a’)==>97 ;?? (int)’a’=>97 ;
Convert.ToByte(‘1’)=49;? (int)’1’=>49;l

2、ASCII码转成字符:

Convert.ToChar(97)=>’d’; 强制转换: (char)97=’a’

注意:C#中的Char字符类型为Unicode类型,每个字符占2个字节。

三、字符串与十六进制表示的字节数组之间的转换

void Main()
 {
     Console.WriteLine(StrToHex("哈啊a的1我z!"));
     Console.WriteLine(HexToStr(B9 FE B0 A1 61 B5 C4 31 CE D2 7A 21));
 }

//字符串转换成十六进制字符串
public string StrToHex(string mStr)
 {
     var a = ASCIIEncoding.Default;
     return BitConverter.ToString(a.GetBytes(mStr)).Replace(-",0);">" );
 }
  十六进制字符串转换成字符串
string HexToStr( mHex)
 {
     mHex = mHex.Replace("");
     if (mHex.Length <= 0) return ;
     byte[] vBytes = byte[mHex.Length / 2];
     for (int i = 0; i < mHex.Length; i += )
         if (!byte.TryParse(mHex.Substring(i,128);">2),NumberStyles.HexNumber,null,255);">out vBytes[i / ]))
             vBytes[i / 2] = 0return ASCIIEncoding.Default.GetString(vBytes);
 }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读