C#中有没有进制转换的想关函数?

解决方案 »

  1.   

    int.Parse("12",System.Globalization.NumberStyles.HexNumber); 好象是这个. :)
      

  2.   

    //****************************vb.net版
    '仅限非负整数
    '十进制数转换成二进制数
    Public Function DecToBin(ByVal value As Integer) As String
        If value = 0 Then Return "0"    Dim tempValue As Integer = value
        Dim tempString As String = ""    Dim modValue As Integer
        Do
            tempString += CStr(tempValue Mod 2)
            tempValue = tempValue \ 2
        Loop While (tempValue <> 0)    Dim i As Integer
        Dim returnChars As Char() = tempString.ToCharArray()
        Dim returnString As String = ""
        For i = tempString.Length - 1 To 0 Step -1
            returnString += returnChars(i)
        Next    Return returnString
    End Function'二进制数转换成十进制数
    Public Function BinToDec(ByVal value As String) As Integer
        Dim i As Integer
        Dim returnValue As Integer = 0
        For i = value.Length - 1 To 0 Step -1
          returnValue += Val(value.Chars(value.Length - 1 - i)) * (2 ^ i)
        Next    Return returnValue
    End Function'任意二进制数转换成十六进制数
    Public Function BinToHex(ByVal value As String) As String
        If value.Length Mod 4 <> 0 Then
            value = value.PadLeft(4 * (value.Length \ 4 + 1), "0"c)
        End If    Dim i As Integer
        Dim returnString As String = ""
        Dim tempString As String
        For i = 0 To value.Length \ 4 - 1
            tempString = value.Chars(4 * i) + value.Chars(4 * i + 1) _
                     + value.Chars(4 * i + 2) + value.Chars(4 * i + 3)        returnString += GetHexChar(tempString)
        Next    Return returnString
    End Function'特殊情况:4位二进制数转换成十六进制数
    Public Function GetHexChar(ByVal value As String) As String
        Dim tempValue As Integer
        tempValue = BinToDec(value)    If tempValue < 10 Then
            Return CStr(tempValue)
        Else
            Select Case tempValue - 10
                Case 0
                    Return "A"
                Case 1
                    Return "B"
                Case 2
                    Return "C"
                Case 3
                    Return "D"
                Case 4
                    Return "E"
                Case 5
                    Return "F"
            End Select
        End If
    End Function
    '十六进制数转换成二进制数
    Public Function HexToBin(ByVal value As String) As StringEnd Function'十进制数转换成十六进制数
    Public Function DecToHex(ByVal value As Integer) As String
        Return BinToHex(DecToBin(value))
    End Function'十六进制数转换成十进制数
    Public Function HexToDec(ByVal value As String) As Integer
        Dim i As Integer
        Dim returnValue As Integer = 0
        For i = value.Length - 1 To 0 Step -1
            Dim num As Integer = 0
            Select Case value.Chars(value.Length - 1 - i)
                Case "0"c To "9"c
                    num = Val(value.Chars(i))
                Case "A"c
                    num = 10
                Case "B"c
                    num = 11
                Case "C"c
                    num = 12
                Case "D"c
                    num = 13
                Case "E"c
                    num = 14
                Case "F"c
                    num = 15
            End Select        returnValue += num * (16 ^ i)
        Next    Return returnValue
    End Function
      

  3.   

    //*******************c#版
    public string DecToBin(int value) 

     if (value == 0) { 
       return "0"; 
     } 
     int tempValue = value; 
     string tempString = ""; 
     int modValue; 
     do { 
       tempString += System.Convert.ToString(tempValue % 2); 
       tempValue = tempValue / 2; 
     } while ((tempValue != 0)); 
     int i; 
     char[][0] returnChars = tempString.ToCharArray(); 
     string returnString = ""; 
     for (int i = tempString.Length - 1; i >= 0; i--) { 
       returnString += returnChars(i); 
     } 
     return returnString; 
    } public int BinToDec(string value) 

     int i; 
     int returnValue = 0; 
     for (int i = value.Length - 1; i >= 0; i--) { 
       returnValue += Val(value.Chars(value.Length - 1 - i)) * (Math.Pow(2, i)); 
     } 
     return returnValue; 
    } public string BinToHex(string value) 

     if (value.Length % 4 != 0) { 
       value = value.PadLeft(4 * (value.Length / 4 + 1), '0'); 
     } 
     int i; 
     string returnString = ""; 
     string tempString; 
     for (int i = 0; i <= value.Length / 4 - 1; i++) { 
       tempString = value.Chars(4 * i) + value.Chars(4 * i + 1) + value.Chars(4 * i + 2) + value.Chars(4 * i + 3); 
       returnString += GetHexChar(tempString); 
     } 
     return returnString; 
    } public string GetHexChar(string value) 

     int tempValue; 
     tempValue = BinToDec(value); 
     if (tempValue < 10) { 
       return System.Convert.ToString(tempValue); 
     } else { 
       if (tempValue - 10 == 0) { 
         return "A"; 
       } else if (tempValue - 10 == 1) { 
         return "B"; 
       } else if (tempValue - 10 == 2) { 
         return "C"; 
       } else if (tempValue - 10 == 3) { 
         return "D"; 
       } else if (tempValue - 10 == 4) { 
         return "E"; 
       } else if (tempValue - 10 == 5) { 
         return "F"; 
       } 
     } 
    } public string HexToBin(string value) 

    } public string DecToHex(int value) 

     return BinToHex(DecToBin(value)); 
    } public int HexToDec(string value) 

     int i; 
     int returnValue = 0; 
     for (int i = value.Length - 1; i >= 0; i--) { 
       int num = 0; 
       if ('0' <= value.Chars(value.Length - 1 - i) && value.Chars(value.Length - 1 - i) <= '9') { 
         num = Val(value.Chars(i)); 
       } else if (value.Chars(value.Length - 1 - i) == 'A') { 
         num = 10; 
       } else if (value.Chars(value.Length - 1 - i) == 'B') { 
         num = 11; 
       } else if (value.Chars(value.Length - 1 - i) == 'C') { 
         num = 12; 
       } else if (value.Chars(value.Length - 1 - i) == 'D') { 
         num = 13; 
       } else if (value.Chars(value.Length - 1 - i) == 'E') { 
         num = 14; 
       } else if (value.Chars(value.Length - 1 - i) == 'F') { 
         num = 15; 
       } 
       returnValue += num * (Math.Pow(16, i)); 
     } 
     return returnValue; 
    }
      

  4.   

    我晕哦,楼上不懂不要来灌水,
    这样会误人子弟的,不误人子弟耽误人时间也是不好滴嘛,
    你不懂等我来说嘛,我不说你肯定是不知道的啦,我不说你怎么知道呢?
    不可能我不说你就知道了的嘛,我说了你不可能不知道,你要是吃料,我也不会不会拦你的嘛!
    晕,我来给楼主一个窃案:
    .ToString(int, 16)
    我逃!(逃了还不知有分追上来没有?跑慢点:)