我的观点主要集中在通信方面。1. 假设构建 .net 标准的流通信程序,还有必要使用Array.Reverse翻转数组么? 我觉得没必要,设计得目的可能不是在这儿上。 
2. 可能再部分老旧通信程序,个别的设备通信中,字的高低位顺序不够标准,这个时候Array.Reverse 能派上用场
3. 在某些学习、教学程序中,Array.Reverse 成我们常见的书本上的高低位顺序。还有其它么?还有没有其它方面? 欢迎大家补充

解决方案 »

  1.   

    大多数的串口通讯资料上面的16进制都是字节之间都是用空格来分割的
     public static byte[] HexStringToBinary(string hexstring)
            {
                string[] tmpary = hexstring.Trim().Split(' ');
                byte[] buff = new byte[tmpary.Length];
                for (int i = 0; i < buff.Length; i++)
                {
                    buff[i] = Convert.ToByte(tmpary[i], 16);
                }
                return buff;
            }    public static int Hex2Int(string hexstring, bool Reverse)
            {
                           byte[] b = HexStringToBinary(hexstring);
                if (Reverse) { Array.Reverse(b); };
                int r = b[0];
                for (int i = 1; i < b.Length - 1; i++)
                {
                    if (b[i] != 0)
                    {
                        r += Convert.ToInt32(Math.Pow(16, b[i]));
                    }
                }
                return r;
            }
      

  2.   

    风马牛不相及......Array.Reverse是基础类库里的方法,跟特定领域无关,你通信不想用,难不成别人在其他地方都不能用?string没有Reverse方法已经让人很郁闷了,你还想把Array的Reverse方法去掉......
      

  3.   

    讨论嘛,不是说移除掉,Reverse 是个好方法, 适合把内部流换成我们比较易懂的hex,或者高低位顺序。 就是还想知道有没有在其它领域用它的,比如图像
      

  4.   

    十六进制数据格式与其它格式转换用到它.内存中的字节排列顺序与显示顺序不同,用这个方法,比较方便。
    否则,怎么办,自己倒序整理public string FloatToHex(float floatValue)
    {
        uint uintValue = BitConverter.ToUInt32(BitConverter.GetBytes(floatValue), 0);
        byte[] byteValue = BitConverter.GetBytes(uintValue);
        Array.Reverse(byteValue);
        return BitConverter.ToString(byteValue).Replace("-","");
    }public float HexToFloat(String hexString)
    {
        uint num = uint.Parse(hexString, System.Globalization.NumberStyles.AllowHexSpecifier);
        byte[] floatVals = BitConverter.GetBytes(num);
        return BitConverter.ToSingle(floatVals, 0);
    }