在发这个帖子之前,我上网找了好久。我这个16进制数比较长,不能用先转成10进制,再转到2进制的方法。
我先转成long的类型都超出范围了。谁那有手工的算法,或者还有什么别的算法,把整个算法发下好吗?跪求!

解决方案 »

  1.   

    按下表转换,一位十六进制转换为四位二进制:
    0 0000
    1 0001
    2 0010
    3 0011
    4 0100
    5 0101
    6 0110
    7 0111
    8 1000
    9 1001
    A 1010
    B 1011
    C 1100
    D 1101
    E 1110
    F 1111
      

  2.   

    分割16进制数据
    BitConverter.ToString
      

  3.   

    private void button1_Click(object sender, EventArgs e)
    {
        string d16="A12164353734573457347D432253254235DA";
        string d2="";
        foreach ( char d in d16)
        {
            d2 += Convert.ToString(int.Parse(d.ToString(),System.Globalization.NumberStyles.AllowHexSpecifier),2).PadLeft(4,'0');
        }
        MessageBox.Show(d2);
    }
      

  4.   

    主要方法:
    int.Parse()
    Convert.ToString(int,2)
      

  5.   

    Public void HexCharToBytes(out byte[] bytesCharArray,strng strHexString)
    {
    int temp=0;
    foreach(char charHex in strHexString.ToCharArray())
    {
    byte byteHex=0;
    int.TryParse(charHex,NumberStyles,null,out byteHex);
    bytesCharArray[temp]=byteHex;
    temp++;
    }
    }主要是int.TryParse那个方法 我手写的 可能编译有点问题 你自己去改改
      

  6.   

    int.TryParse(charHex,NumberStyles,null,out byteHex);
    NumberStyles.Hex 这里好像
      

  7.   

    楼主的“这个16进制数比较长”,比如:
    s="12A4B5DCFF...",是这样的字符串吗?想要的转换结果是下面的这个样子吗?
    result="1001010100100101101011101110011111111..."