【发布时间】:2017-12-14 06:02:42
【问题描述】:
我是 C# 新手,我正在尝试更多地了解数据类型和转换。我有以下控制台程序:
using System;
namespace First_lesson
{
class Program
{
static void Main(string[] args)
{
char singleLetter = 'B';
short num = 291;
Console.WriteLine("{0} {1}", num, singleLetter);
singleLetter = Convert.ToChar(num);
Console.WriteLine(singleLetter);
Console.WriteLine("{0} {1}", sizeof(short), sizeof(char));
}
}
}
我不明白为什么,当我将 num 转换为 char 时,我得到一个小写 g 而不是主题标签符号 #。 p>
转换不是基于 ASCII 值吗?
【问题讨论】:
-
这个
Convert.ToChar满足你吗:msdn.microsoft.com/en-us/library/3hkfdkcx(v=vs.110).aspx? -
"将指定的 32 位有符号整数的值转换为其等效的 Unicode 字符。" - 转换最终基于 UTF-16 编码。
-
char是一个 UTF-16 代码单元。 UTF-16 是Unicode 字符集的编码。char的范围从 0 到 0xffff,所以我不明白为什么你会期望 291 映射 '#'。
标签: c# types char type-conversion short