关于字符串的一些操作,各种进制之间的转换···

 

功能实现如图所示:data 数据保存的是一个 16进制的数字,下面输入框表示的是显示二进制的数字。

一般在传值的时候,都是10进制的数字,或者是其他进制的字符串格式。今天整理一些关于字符串和各种进制之间的操作方法。

一)首先了解各种进制之间的数字转换方法 http://www.cnblogs.com/lds85930/archive/2007/09/19/897912.html

二)一些常用的方法

1)将一个16进制的字符转成 二进制

//十进制转二进制
Console.WriteLine("十进制166的二进制表示: "+Convert.ToString(166, 2));
//十进制转八进制
Console.WriteLine("十进制166的八进制表示: "+Convert.ToString(166, 8));
//十进制转十六进制
Console.WriteLine("十进制166的十六进制表示: "+Convert.ToString(166, 16));

//二进制转十进制
Console.WriteLine("二进制 111101 的十进制表示: "+Convert.ToInt32("111101", 2));
//八进制转十进制
Console.WriteLine("八进制 44 的十进制表示: "+Convert.ToInt32("44", 8));
//十六进制转十进制
Console.WriteLine("十六进制 CC的十进制表示: "+Convert.ToInt32("CC", 16));
        public static string ToString(byte value, int toBase);
        public static string ToString(char value, IFormatProvider provider);
        public static string ToString(DateTime value, IFormatProvider provider);
        public static string ToString(decimal value, IFormatProvider provider);
        public static string ToString(double value, IFormatProvider provider);
        public static string ToString(float value, IFormatProvider provider);
        public static string ToString(int value, IFormatProvider provider);
        public static string ToString(int value, int toBase);
        public static string ToString(long value, IFormatProvider provider);
        public static string ToString(long value, int toBase);
        public static string ToString(object value, IFormatProvider provider);
        public static string ToString(sbyte value, IFormatProvider provider);
        public static string ToString(short value, IFormatProvider provider);
        //
        // 摘要:
        //     将 16 位有符号整数的值转换为其指定基的等效字符串表示形式。
        //
        // 参数:
        //   value:
        //     要转换的 16 位有符号整数。
        //
        //   toBase:
        //     返回值的基数,必须是 2、8、10 或 16。
        //
        // 返回结果:
        //     以 toBase 为基的 value 的字符串表示形式。
        //
        // 异常:
        //   System.ArgumentException:
        //     toBase 不是 2、8、10 或 16。
        [SecuritySafeCritical]
        public static string ToString(short value, int toBase);
        public static string ToString(string value, IFormatProvider provider);
        public static string ToString(uint value, IFormatProvider provider);
        public static string ToString(ulong value, IFormatProvider provider);
        public static string ToString(ushort value, IFormatProvider provider)
2)一些处理方法
        private int HexToInt(char ch)
        {
            switch(ch)
            {
             case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
                return ch - 'a' + 10;
             case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': 
                return ch - 'A' + 10;   
             default:
                return ch - '0';
            }
        }

3)控件输入字符的限定

 1         private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
 2         {
 3             if (e.KeyChar != '0' && e.KeyChar != '1')
 4             {
 5                 e.Handled = true; //取消后面的操作
 6             }
 7             if (TextBoxChange != null)
 8             {
 9                 TextBoxChange(this.Text);
10             }
11         }

 

 

posted @ 2013-04-01 23:34  侠梦千年  阅读(625)  评论(0)    收藏  举报