我有一个简单的问题。
我们知道Char
占用两个字节(16位),而Byte
占用一个字节(8位)。
但在许多编程语言中,有一个函数可以将Char
转换为Byte
。如何在不丢失任何内容的情况下将Char
转换为Byte
?
答案 0 :(得分:3)
在C#中,java char是一个16位的Unicode字符。在其他(较旧的?)语言(C,C ++等)中,char
是ASCII字符的8位表示。在这些语言中,转换类型而不丢失任何东西是有意义的。
在C#中,您可以将char
转换为byte
的两倍,或者假设(确定)您尝试转换的char
为8位{ {1}} s(查看ASCII表)写成Unicode char
s。
答案 1 :(得分:1)
这是不可能的。我不认为有任何语言附带这样的功能。例如,Java有String.getBytes
,C#有Encoding.GetBytes
,他们获得的是byte
,而不是byte
。这种转换就像在C中从short[]
转换为char[]
一样,非常简单,没有操作,只是转换,整个对象的大小(字节总数)保持不变;什么都不会丢失。