我也感觉是一,显式转换如果成功只是变引用类型并不用格式化内容
而二要进行的就不是显式转换了,又占资源又费事,还要进行Reverse 排序

解决方案 »

  1.   

    事实说话,下面的代码运行一下。结果一样!!!
    using System;
    using System.Net;
    using System.Net.Sockets;namespace temp
    {
    /// <summary>
    /// Summary description for Class1.
    /// </summary>
    class Class1
    {
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main(string[] args)
    {
    //
    // TODO: Add code to start application here
    //
    UInt16 blocknum;
    blocknum=0x77ff;
    Int64 begin,end;
    Console.WriteLine(blocknum.ToString("X"));
    begin=System.DateTime.Now.Ticks;
    short interValue = IPAddress.HostToNetworkOrder((short)blocknum);
    blocknum = (ushort)interValue;
    end=System.DateTime.Now.Ticks;
    Console.WriteLine(end-begin);
    Console.WriteLine(blocknum.ToString("X"));
    Console.WriteLine(); UInt16 blocknum2;
    blocknum2=0X77ff;
    Int64 begin2,end2;
    Console.WriteLine(blocknum2.ToString("X"));
    begin2=System.DateTime.Now.Ticks;
    Byte[] b_blocknum=BitConverter.GetBytes(blocknum2);
    Array.Reverse(b_blocknum);
    blocknum2= BitConverter.ToUInt16(b_blocknum,0);
    end2=System.DateTime.Now.Ticks;
    Console.WriteLine(end-begin);
    Console.WriteLine(blocknum2.ToString("X")); }
    }
    }
    运行结果完全一样!!
    这就是.net framework的功劳,不过代码一可读性强一些。