byte[] tempBuf = new byte[size];            tempBuf = System.Text.Encoding.Default.GetBytes(str);            for (i = size - 1; i >= 0; i--)
            {
               Data[m++] = tempBuf[i];
            }想把字符串转为byte[],但是报错数组越界。在str转tempbuf的时候,本来tempbuf有size个长度,一转后就变1个长度了。改怎么转?是想把str,转成4个字节或2个字节的整数。放进tempbuf[]中、。还有转成byte[]后是按什么字节顺序的呢? 我还要把低字节在前,高字节在后。

解决方案 »

  1.   

     byte[] tempBuf = new byte[size]; // 这个size哪里来的? 不要也罢~
     byte[] tempBuf = Encoding.UTF8.GetBytes(str); // 这样不是清爽又健康吗?
      

  2.   


    size是我要指定str转成4个字节的还是2个字节的。。  
      

  3.   

                byte[] tempBuf = System.Text.Encoding.Default.GetBytes(str);
                byte[] Data = new byte[tempBuf.Length]
                for (i = 0; i < tempBuf.Length; i+)
                {
                   Data[i] = tempBuf[tempBuf.Length - 1 - i];
                }
      

  4.   

    byte[] Data = new byte[tempBuf.Length];唉, 还漏了个分号.
      

  5.   

    别激动,真的有用吗?size是我要指定str转成4个字节的还是2个字节的。。 
      

  6.   

    转成byte[]后是按什么字节顺序的呢?  ----->低字节在前,高字节在后。
      

  7.   


    很有可能.另, 我不太明白 LZ 的意图, 特别是 size 的意思, 可能是人老了, 理解不了年青人的想法了.
      

  8.   

    没弄懂是虾米意思
    转换成byte之后再变成整数?
    变成整数之后,还要能推导回去,变回字符串?
      

  9.   

    byte[] tempBuf = new byte[size];            tempBuf = System.Text.Encoding.Default.GetBytes(str);            for (i = size - 1; i >= 0; i--)
                {
                   Data[m++] = tempBuf[i];
                }System.Text.Encoding.Default.GetBytes是返回一个新的byte[]的实例,所以你在前面new定义的长度无效。
    另外想数组倒序可以
    System.Array.Reverse(tempBuf)执行后tempBuf就是原来的数组倒序后的结果
      

  10.   


    是我说的不明白。就是把编辑框上的数据转为byte后写入别的东西里。编辑框上的数据是数字啊,然后规定有些数字占4个字节,有些占2个字节,
    所有转的时候要小心啊。写入的时候是要低字节在前高字节在后。
      

  11.   


    哦,那System.Text.Encoding.Default.GetBytes(str);返回的Byte[]是按什么字节顺序的呢。我要低字节在前高字节在后
      

  12.   

    编辑框里面的数据,不是数字~~是字符串~~  '0'~'9'的字符.. ..不管你是什么编码格式,每个数字字符的长度应该是一致的,你可以foreach字符串,根据不同的字符进行转换~总共十种可能,一个个弄,不算太复杂. ..
      

  13.   

    good good study,day day up