关于进制转化的一些方法记录

1.十六进制转2进制

1.1高位为0的话不显示

string dddd = Convert.ToString(revdata[0], 2);//8A -- "10001010"

 1.2方法实现

     /// <summary>
        ////// </summary>
        /// <param name="hexString">十六进制数</param>
        /// <returns>bitLenth为返回几位字符设置(0-8)</returns>
        public static string HexString2BinString(string hexString, int bitLenth)
        {
            try
            {
                if (hexString.Contains("0x"))
                {
                    hexString = hexString.Replace("0x", "");
                }
                string result = string.Empty;
                string tempFormat = "{0:d" + bitLenth.ToString() + "}";
                foreach (char c in hexString)
                {
                    int v = Convert.ToInt32(c.ToString(), 16);
                    int v2 = int.Parse(Convert.ToString(v, 2));
                    // 去掉格式串中的空格,即可去掉每个4位二进制数之间的空格,
                    //result += string.Format("{0:d4} ", v2);
                    result += string.Format(tempFormat, v2);
                }
                return result;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                throw;
            }
        }

1.3byte To int[]把每一位存入int数组

public static int[] byteTo2(byte b) 
        {
            int[] dataint = new int[8];
            dataint[7] = ((b & 128) == 128 ? 1 : 0);
            dataint[6] = ((b & 64) == 64 ? 1 : 0);
            dataint[5] = ((b & 32) == 32 ? 1 : 0);
            dataint[4] = ((b & 16) == 16 ? 1 : 0);
            dataint[3] = ((b & 8) == 8 ? 1 : 0);
            dataint[2] = ((b & 4) == 4 ? 1 : 0);
            dataint[1] = ((b & 2) == 2 ? 1 : 0);
            dataint[0] = ((b & 1) == 1 ? 1 : 0);
            return dataint;
        }

1.4 byte to 2string  byte转为8位2进制字符串

public static string byteTo2string(byte b)
        {
            string[] dataint = new string[8];
            dataint[7] = ((b & 128) == 128 ? 1 : 0).ToString();
            dataint[6] = ((b & 64) == 64 ? 1 : 0).ToString();
            dataint[5] = ((b & 32) == 32 ? 1 : 0).ToString();
            dataint[4] = ((b & 16) == 16 ? 1 : 0).ToString();
            dataint[3] = ((b & 8) == 8 ? 1 : 0).ToString();
            dataint[2] = ((b & 4) == 4 ? 1 : 0).ToString();
            dataint[1] = ((b & 2) == 2 ? 1 : 0).ToString();
            dataint[0] = ((b & 1) == 1 ? 1 : 0).ToString();
            return dataint[7] + dataint[6] + dataint[5] + dataint[4] + dataint[3] + dataint[2] + dataint[1] + dataint[0];
        }

1.5 2进制转16进制String

string rgb10 = string.Format("{0:x}", Convert.ToInt32(二进制数, 2));

1.6 String16进制转byte

byte ddd = Convert.ToByte(rgb10, 16);

 

posted @ 2022-08-10 23:50  驼七  阅读(79)  评论(0)    收藏  举报