哪种数据类型用于C#中的无符号字符

本文关键字:无符号 字符 数据类型 用于 | 更新日期: 2023-09-27 17:58:01

我有一个c++应用程序。在该应用程序中,函数之一是返回unsigned char值。我想把那个函数转换成C#代码。但是,我对c++编程的知识还不够。我想知道在c#中,对于c++无符号字符,将放置什么数据类型。

c++函数看起来像这个

unsigned char getValue(string s)
{
    //SOME CODE HERE
}

哪种数据类型用于C#中的无符号字符

C#中unsigned char的等价物是byte

byte getValue(string s)
{
}

第二个选项:如果使用无符号字符作为字符存储,则应该使用char:

char getValue(string s)
{
}

您必须记住,C++对字符和8字节值一视同仁。因此,例如在C++中:

'A' + 'B' == 65 + 66 == 65 + 'B' == 'A' + 66

您必须从上下文中检查unsigned char是字符还是数字。根据作为参数传递的字符串,可以猜测,函数处理的字符大多是char C#类型。

您正在查找byte类型。此外,如果您需要的话,这个问题还有其他映射。

如果您的C#代码应该将值视为字符,那么char类型就是您想要的。我们之所以建议字节,是因为我们假设您希望将该值视为8-bit整数。

C++ unsigned char = C# byte
C++ char = C# sbyte 

使用char。C#中的char既没有符号也没有符号。它是16位值。

如果您不想保留字符,而是保留实际的二进制数,那么您应该选择byte,这是一个无符号整数,就像c++中的unsigned char一样。

另请参阅:什么是无符号字符?