以前没有遇到过此类问题,初一接触,第一反应就是C#必有解决此问题的方法可以直接调用。
本以为在Convert.的方法里可以直接ToBinary或是类似的处理,但经查找无此方法,于是想也许有其他方法重载了或派生了解决此问题的方法。
经查找,果然在ToString()的系列方法中有解决此问题的重载。
具体应用如:int a=13; Convert.ToString(a,2); 其中的2指转换成的基本类型是2进制类型。这样转换后就得到了1101的字符串。
同理还可以进行其他的多种进制转化。
网上搜了一下,相关的进制转换大概有以下方法(没有全部验证过):
///<summary>
///不同进制的数字之间的转换方法。
///int.Parse\Convert.ToString\BitConverter.ToString
///</summary>
//十六进制(string)转化为十进制(int)
int i = 0xA1 ;//ASCII码A1转化为对应值 可以:string thevalue = (char) 0xA1 ;
//十进制(int)转化为十六进制(string)
int a = 188;
TextBox1.Text=a.ToString("X4") ;
//十六进制(string)转化为十进制(int)
int b = int.Parse("AB", System.Globalization.NumberStyles.HexNumber);
//十进制(int)转化为十六进制(string)
j = 10;
string strBase16 = Convert.ToString(j,16);
//十六进制(string)转化为十进制(int)
string strBase16 = "A";
int j = Convert.ToInt32(strBase16,16);
//二进制(string)转化为十进制(int)
string bin = "1110" ;
int dec= Convert.ToInt16( bin , 2 ) ;
dec.ToString ( ) ;
//十进制(int)转化为二进制(string)
int j = 10;
string strBase2 = Convert.ToString(j,2);
DataAccess.common.setMessage( strBase2 ) ;
//十进制(int)转化为二进制(string)
int dec= 14 ;
sting bin = ConvertToBin ( dec ) ;// dec/2 = "1110"
//BitConverter转化
bytes = System.Text.Encoding.Default.GetBytes( "12Paladin2" ) ;
MessageBox.Show ( BitConverter.ToString( bytes ) ) ; // 31-32-50-61-6C-61-64-69-6E-32
//字节(byte)转化为十六进制(string)
Convert.ToString ( bytes[0+1] , 16 ) ;
//&Hff转化为如255的存放在byte中
byte.Parse ( Convert.ToInt32( '\xff' )).ToString( ) ) ;
//byte中bit操作
int[] hello = new int[1];
hello[0] = 1;
System.Collections.BitArray kao = new BitArray(hello);
bool **** = kao[0];