c#中将单引号字符串转换为uint [重复]

Posted

技术标签:

【中文标题】c#中将单引号字符串转换为uint [重复]【英文标题】:Single quoted string to uint in c# [duplicate] 【发布时间】:2013-10-30 01:56:55 【问题描述】:

我正在将一些 C++ 转换为 C# 代码,我看到了以下定义:

#define x 'liaM'

首先,这个单引号常量是什么意思?我是否在 c# 中将其设为字符串常量?

其次,在 C++ 中,这个常量被赋值给一个 uint 变量。它是如何工作的?

uint m = x;

【问题讨论】:

由于您的问题主要是关于某些 C++ 代码的含义,我会添加该语言标记以及 C# 标记。 ***.com/questions/3683602/… ***.com/questions/7459939/… 【参考方案1】:

这有时称为FOURCC。有一个 Windows API 可以将字符串转换为名为 mmiostringToFOURCC 的 FOURCC,这里有一些 C# 代码可以做同样的事情:

public static int ChunkIdentifierToInt32(string s)

    if (s.Length != 4) throw new ArgumentException("Must be a four character string");
    var bytes = Encoding.UTF8.GetBytes(s);
    if (bytes.Length != 4) throw new ArgumentException("Must encode to exactly four bytes");
    return BitConverter.ToInt32(bytes, 0);

【讨论】:

为什么不直接使用BitConverter.ToInt32(char[] 'l', 'i', 'a', 'M' ); 并完全跳过字符串? @BenVoigt 是的,甚至更好。我编写了上面的代码作为调用 mmioStringToFOURCC 其实我的评论应该用byte[]

以上是关于c#中将单引号字符串转换为uint [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在C#中将Char数组转换为字符串[重复]

当字符串在双引号内有单引号时,如何在Javascript中将此字符串转换为JSON对象

在 CodeIgniter 的 url_title 函数中将单引号转换为分隔符

在C#中将对象转换为JSON字符串[重复]

如何在 c# 中将字符串从 utf8 转换(音译)为 ASCII(单字节)?

如何在c#中将字符串转换为日期[重复]