各位哥,我要用Byte[]打包一个字符串数据,现在我获得了这字符串的长度(整数类型),要把这个长度以十六进制的形式保存在Byte[]的第一个位置里,请问如何实现?
备注:
这个Byte[]的格式是:[字符串长度(十六进制)]+[数据域(我的字符串)]

解决方案 »

  1.   

    这种字串一般用int值表示够了吧??如果可以.就是前面留四个BYTE作为长度.后面是字符串..
    例如:
    string value = "测试数据";
    byte[] bvalue = System.Text.Encoding.Default.GetBytes(value);
    byte[] tmpvalue = new byte[4+bvalue.Length.Length];
    BitConverter.GetBytes(bvalue.Length).CopyTo(tmpvalue,0);
    bvalue.CopyTo(tmpvalue,4);
    这个tmpvalue即可
      

  2.   


    非常感谢beargo,有没有用于通信的数据打包相关的资料呢,我现在要通过串口与单片机通信
      

  3.   

    因为我要操作的单片机只认十六进制表示的长度值,请问怎么把这个字符串的长度值(int)转换成十六进制并存在Bytes[]里?
      

  4.   

    BYTE就是无符号Char,也可以表示(0xff)0~255以内的整数。长度直接存就可以了,不用管多少进制