while (true)
{
Console.WriteLine("请选择转换模式:\n 1 十进制转二进制 2 八进制转二进制 3 十六转二进制");
int n = int.Parse(Console.ReadLine());
switch (n)
{
case 1:
{
Console.WriteLine("请输入值");
int a = int.Parse(Console.ReadLine());
int sum = a;
Console.WriteLine("{0}的2进制为:", a);
int num = 0;
string str = "";
int[] arr = new int[16];
do
{
sum = a % 2;//2或者8
arr[num] = sum;
++num;
a = a / 2;
} while (a > 0);
for (int i = arr.Length - 1; i >= 0; --i)
{
str += arr[i];
}
string str1 = str.TrimStart('0');//去除前面的0
Console.WriteLine(str1);
break;
}
case 2:
{
Console.WriteLine("请输入值");
string s = Console.ReadLine();
Console.WriteLine("{0}的2进制为:", s);
char[] a = s.ToCharArray();
//把输入的字符串分别存放进数组的每个下标对应位置
int[] b = new int[s.Length];
int sum = 0;
int d = s.Length;
for (int i = 0; i < s.Length; ++i)
{
string str1 = "" + a[i];
b[i] = int.Parse(str1);
sum += b[i] * (int)Math.Pow(8, d - 1);
d = d - 1;
}
int s1 = sum;
int num = 0;
string str = "";
int[] arr = new int[16];
do
{
s1 = sum % 2;
arr[num] = s1;
++num;
sum = sum / 2;
} while (sum > 0);
for (int i = arr.Length - 1; i >= 0; --i)
{
str += arr[i];
}
string str2 = str.TrimStart('0');//去除前面的0
Console.WriteLine(str2);
break;
}
case 3:
{
Console.WriteLine("请输入值");
string s = Console.ReadLine();
Console.WriteLine("{0}的2进制为:", s);
char[] a = s.ToCharArray();//把输入的字符串分别存放进数组的每个下标对应位置
int[] b = new int[s.Length];
int sum = 0;
int d = s.Length;
string str3 = "0x";
string str4 = s.Substring(0, 2);
bool t = str3.Equals(str4);
if (!t)
{
for (int i = 0; i < s.Length; ++i)
{
if (a[i] >= 65)
{
int c = a[i];
b[i] = c - 55;
}
else
{
string str1 = "" + a[i];
b[i] = int.Parse(str1);
}
sum += b[i] * (int)Math.Pow(16, d - 1);
d = d - 1;
}
}
else
{
for (int i = 2; i < s.Length; ++i)
{
if (a[i] >= 65)
{
int c = a[i];
b[i] = c - 55;
}
else
{
string str1 = "" + a[i];
b[i] = int.Parse(str1);
}
sum += b[i] * (int)Math.Pow(16, d - 3);
d = d - 1;
}
}
int s1 = sum;
int num = 0;
string str = "";
int[] arr = new int[16];
do
{
s1 = sum % 2;
arr[num] = s1;
++num;
sum = sum / 2;
} while (sum > 0);
for (int i = arr.Length - 1; i >= 0; --i)
{
str += arr[i];
}
string str2 = str.TrimStart('0');//去除前面的0
Console.WriteLine(str2);
break;
}
default:
break;
}
}
各进制转换成二进制
最新推荐文章于 2023-07-24 03:36:47 发布