我有一个简单的问题。正如我们所知,它Char
占用两个字节(16 位),Byte
占用一个字节(8 位)。但是在许多编程语言中都有一个函数可以转换Char
为Byte
. 如何在不丢失任何东西的情况下转换Char
为?Byte
问问题
1415 次
2 回答
3
在 C# 和 java 中,char 是 16 位 Unicode 字符。在其他(较旧的?)语言(C、C++ 等)中, char
s 是 ASCII 字符的 8 位表示。在这些语言中,在不丢失任何内容的情况下转换类型是有意义的。
在 C# 中,您可以将char
s 转换为 s 的两倍byte
,或者假设(确实如此)char
您尝试转换的 s 是 8 位char
s(查看 ASCII 表),写为 Unicode char
s。
于 2012-10-30T09:29:55.947 回答
1
这是不可能的。我认为没有任何语言带有这样的功能。比如Java有String.getBytes
,C#有Encoding.GetBytes
,他们得到的是byte
s,不是byte
。这种转换就像 C 中的从转换到转换short[]
,char[]
非常简单,没有操作,只是转换,整个对象的大小(字节总数)保持不变;没有任何损失。
于 2012-10-30T10:07:13.830 回答