-1

我有一个简单的问题。正如我们所知,它Char占用两个字节(16 位),Byte占用一个字节(8 位)。但是在许多编程语言中都有一个函数可以转换CharByte. 如何在不丢失任何东西的情况下转换Char为?Byte

4

2 回答 2

3

在 C# 和 java 中,char 是 16 位 Unicode 字符。在其他(较旧的?)语言(C、C++ 等)中, chars 是 ASCII 字符的 8 位表示。在这些语言中,在不丢失任何内容的情况下转换类型是有意义的。

在 C# 中,您可以将chars 转换为 s 的两倍byte,或者假设(确实如此)char您尝试转换的 s 是 8 位chars(查看 ASCII 表),写为 Unicode chars。

于 2012-10-30T09:29:55.947 回答
1

这是不可能的。我认为没有任何语言带有这样的功能。比如Java有String.getBytes,C#有Encoding.GetBytes,他们得到的是bytes,不是byte。这种转换就像 C 中的从转换到转换short[]char[]非常简单,没有操作,只是转换,整个对象的大小(字节总数)保持不变;没有任何损失。

于 2012-10-30T10:07:13.830 回答