C# 中的无符号字符使用哪种数据类型?
Posted
技术标签:
【中文标题】C# 中的无符号字符使用哪种数据类型?【英文标题】:Which datatype is used for unsigned char in C#? 【发布时间】:2014-05-25 04:09:18 【问题描述】:我有一个 C++ 应用程序。在该应用程序中,函数之一是返回 unsigned char
值。我想将该函数转换为 C# 代码。但是,我对 c++ 编程没有足够的知识。我想知道 C# 中的 c++ unsigned char 将放置什么数据类型。
c++函数是这样的
unsigned char getValue(string s)
//SOME CODE HERE
【问题讨论】:
谢谢大家给我快速的答复。所有答案都是正确的,对我有帮助。 【参考方案1】:unsigned char
在 C# 中的等价物是 byte
。
byte getValue(string s)
第二种选择:如果你使用unsigned char作为字符存储,你应该使用char
:
char getValue(string s)
您必须记住,C++ 平等对待字符和 8 字节值。因此,例如在 C++ 中:
'A' + 'B' == 65 + 66 == 65 + 'B' == 'A' + 66
您必须从上下文中检查unsigned char
是字符还是数字。从作为参数传递的字符串中,可以猜测,该函数处理字符,所以很可能您需要char
C# 类型。
【讨论】:
【参考方案2】:您正在寻找byte
类型。此外,this question 有额外的映射,如果你需要的话。
如果您的C#
代码应该将值视为字符,那么char
类型就是您想要的。我们一直建议 byte 的原因是因为我们假设您希望将该值视为 8-bit
整数。
【讨论】:
【参考方案3】:C++ unsigned char = C# byte
C++ char = C# sbyte
【讨论】:
【参考方案4】:使用char
。 C# 中的 char
既没有签名也没有无符号。它是 16 位值。
如果你不想保留字符,而是实际的二进制数,那么你应该选择byte
,这是一个无符号整数,就像c++中的unsigned char
一样。
另请参阅:What is an unsigned char?
【讨论】:
那么,我的函数是返回 ascii 字节还是任何字母字符? @Nimesh,您的函数正在返回一个 8 位值,您的程序可以选择解释它选择的任何方式。 两者。所以要做出选择,我们需要找出实际需要的数据类型,所以我们需要方法体。例如,如果该方法返回给定字符串的第一个字符,则返回类型为char
。如果它会返回字符串中的元素个数,byte
应该更好(除了int
)。以上是关于C# 中的无符号字符使用哪种数据类型?的主要内容,如果未能解决你的问题,请参考以下文章