C#10轉16, 16轉10 初階


            int a =5000 ;
            string b = "13";

            //10轉16
            string bb = Convert.ToString(a,16);

            //16轉10
            a = Int32.Parse(b,System.Globalization.NumberStyles.HexNumber);

            MessageBox.Show(a.ToString()+"       "+bb);
                                             10進位                  16進位

 

 

 

      //10進位補數

int a = 10;

string aa = (~a).ToString();

 

10進位轉二進位

string s = Convert.ToString(5, 2).PadLeft(4, '0');

//output: 0101

10進位轉ASCII

string s = Convert.ToString((char)65);

//output: A

 ASCII轉10進位

byte[] in = Encoding.ASCII.GetBytes("A"); 

//output: in [0] =65 

10進位轉16進位 

string strHex = String.Format("{0:X}", 123); 

//output: 7B 

16進位轉10進位 

Convert.ToInt32(7B, 16);

//output: 123 

 

 

Selin實列

 public void CountECC()
        {
           
            string a = "15", b = "00", c = "00"; // a=15是在內定輸入出的規格. 請詳見SDA通訊規格
           
            string Keyin = Convert.ToString(Var.Runtime,16);
 
            if (Keyin.Length < 2)
            {
                Keyin = "0" + "0"+"0"+Keyin;
                      
            }
            else if (Keyin.Length < 3)
            {
                Keyin = "0" + "0"+Keyin;
            }
            else if (Keyin.Length < 4)
            {
                Keyin = "0"+Keyin;
               
            }
            b = Keyin.Substring(0, 2);
            c = Keyin.Substring(2, 2);
          
 
 
            int Runhead = Int32.Parse(a, System.Globalization.NumberStyles.HexNumber); //01060905 的10進位
            int FirstHex = Int32.Parse(b, System.Globalization.NumberStyles.HexNumber); //前擋數據
            int EnxHex = Int32.Parse(c, System.Globalization.NumberStyles.HexNumber);//後擋數據
            int total = Runhead + FirstHex + EnxHex; //全部相加
            int bu = ~total; //補數
            bu++; //補數加1
            string aa = Convert.ToString(bu, 16); //再轉成16進位
            char EC1, EC2;
            EC1 = Convert.ToChar(aa.Substring(aa.Length - 2, 1));//EC的第一碼
            EC2 = Convert.ToChar(aa.Substring(aa.Length - 1, 1));//EC的第二碼
 
            EC1 = char.ToUpper(EC1);
            EC2 = char.ToUpper(EC2);
 
            jog[0] = ':';
            jog[1] = '0';
            jog[2] = '1';
            jog[3] = '0';
            jog[4] = '6';
            jog[5] = '0';
            jog[6] = '9';
            jog[7] = '0';
            jog[8] = '5';
            jog[9] = '0';
            jog[10] = '0';
            jog[11] = '0';
            jog[12] = '0';
            jog[13] = EC1;
            jog[14] = EC2;
            jog[15] = (char)13;
            jog[16] = (char)10;
            jog[12] = Convert.ToChar(Keyin.Substring(Keyin.Length - 1, 1));
            jog[11] = Convert.ToChar(Keyin.Substring(Keyin.Length - 2, 1));
            jog[10] = Convert.ToChar(Keyin.Substring(Keyin.Length - 3, 1));
            jog[9] = Convert.ToChar(Keyin.Substring(Keyin.Length - 4, 1));
            jog[12] = Char.ToUpper(jog[12]);
            jog[11] = Char.ToUpper(jog[11]);
            jog[10] = Char.ToUpper(jog[10]);
            jog[9] = Char.ToUpper(jog[9]);
 
 
            t = "";
            for (int i = 0; i < jog.Length; i++)
                t = t + jog[i].ToString();
 
 
            label6.Text = t;
 
            //記錄到Recordshow
 
            Var.Record[R, 0] = R.ToString();
            Var.Record[R, 1] = "轉動";
            Var.Record[R, 4] = label29.Text + "圈";
            Var.Record[R, 5] = ang.ToString() + "度";
            Var.Record[R,10]="1";
            Var.SendCommand[R] = "" + jog[0] + jog[1] + jog[2] + jog[3] + jog[4] + jog[5] + jog[6] + jog[7] + jog[8] + jog[9] + jog[10] + jog[11] + jog[12] + jog[13] + jog[14] + jog[15] + jog[16]; //將陣列寫入到變數裏 
 
            //記錄到檔案裏
        
            File.AppendAllText("sc.txt", R.ToString() + ",2|" + Var.SendCommand[R] + "\n");
 
            Var.jog = 0;
            R++;
            RecordShow();
 
        }
 

 

 

 

 

← 回列表