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();
}