public static void transform()
{
Console.WriteLine("请输入数字:");
string s = Console.ReadLine();
Console.Write("转换后¥:");
for (int i = 0; i < s.Length; i++)
{
//switch(Convert.ToInt32(Console.ReadLine()))
//s[i] - 48 把 用字符串形式 输入的 2进制来数, 化成10进制数值, 并按 10 进制 输出。
// n = n * 2 + st2[i] - 48; 可以看成 n = n * 2 + (st2[i] - 48);
// st2[i] - 48 就是把 str2[i] 这个字符源 的 ASCII 码值,化成 算术值。
//因为 字符 '0' 的编码 是 48, 字符 '1' 的编码 是 49,
//st2[i] - 48 就变成知了 0 或 1, 看你 输入的 某位上的 字符 是 '0' 还是 '1'。
//n * 2 就是 把 数值 n 乘 2。
//for (i = 0; st2[i] != 0; i++) 里的!0 就是 一个字符一个字符地处理,直到遇见 字符串结道束符。
//例如输入 111。
//i = 0; st2[i] == '1'; n = '1' - 48 = 1;
// i = 1; st2[i] == '1'; n = 1 * 2 + ('1' - 48) = 2 + 1 = 3;
// i = 2; st2[i] == '1'; n = 3 * 2 + ('1' - 48) = 6 + 1 = 7;
// printf("%d\n", n); 输出 7。
switch (s[i] - 48)
{
case 0:
Console.Write("零");
break;
case 1:
Console.Write("壹");
break;
case 2:
Console.Write("贰");
break;
case 3:
Console.Write("叁");
break;
case 4:
Console.Write("肆");
break;
case 5:
Console.Write("伍");
break;
case 6:
Console.Write("陆");
break;
case 7:
Console.Write("柒");
break;
case 8:
Console.Write("捌");
break;
case 9:
Console.Write("玖");
break;
case 10:
Console.Write("拾");
break;
default:
Console.Write("输入其他字符");
break;
}
}
Console.WriteLine();
Console.Read();
}
调用 :
transform();