前往顾页
以后地位: 主页 > 收集编程 > .Net实例教程 >

C# 输入二进制字符串(流)的体例

时候:2017-12-11 22:49来源:知行网www.zhixing123.cn 编辑:麦田守望者

平常写法度很少输入二进制字符串,年夜多输入字符型、整型、日期型等,再加上直接操纵二进制的频次远低于操纵字符、整数,所以有关 C# 输入二进制流的相关文章也比较少。但有的时候会直接操纵二进制流,比方拆分文件的时候,需求判定二进制流中的一些字符是不是是汉字,以避免截断一个汉字而天生乱码。

  C# 输入二进制字符串可以用 ToString(byte, 2) 体例,byte 是一个英文的二进制流、汉字的半个字节的二进制流等等,每次只可以输入一个 byte,把每次输入的二进制字符串起来就好了。

 

  C# 输入二进制字符串的体例:

  起首获得字符串的二进制流,然后循环输入每个字符的二进制编码并归并到一个字符串,为了便于辨认,每个二进制编码之间用一个逗号隔开,实当代码以下:

  /// <summary>
  /// C# 输入二进制流
  /// </summary>
  /// <returns>二进制字符串</returns>

  private string OutPutBinary()
  {
    string text = "C# 输入二进制字符串";
    byte[] arrByte = System.Text.Encoding.GetEncoding("GB2312").GetBytes(text);
    string byteStr = null;

    foreach (byte b in arrByte)
    {
      if (byteStr == null)
        byteStr = Convert.ToString(b, 2);
      else
        byteStr += "," + Convert.ToString(b, 2);
    }
    return byteStr;
  }

  调用: Response.Write("<br />" + OutPutBinary());

  输入成果:

  1000011,100011,100000,11001010,11100100,10110011,11110110,10110110,11111110,10111101,11111000,11010110,11000110,11010111,11010110,10110111,11111011,10110100,10101110

 

  从输入的二进制编码可以看出,汉字都由8位组,并且每个汉字的每个字节最高位(第7位)都是1(用 GB2312 编码的环境下);英笔墨母和特别字符都没有8位,因为前面是0的,输入的时候被省略了,并且它们的最高位都不是1。

顶一下
(1)
100%
踩一下
(0)
0%
------分开线----------------------------
标签(Tag):C#
------分开线----------------------------
颁发评论
请自发遵循互联网相关的政策法规,严禁公布色情、暴力、革命的谈吐。
评价:
神色:
考证码:点击我更换图片
猜你感兴趣