gpt4 book ai didi

C# 将 char 转换为大于 256 的 int

转载 作者:太空宇宙 更新时间:2023-11-03 23:18:00 27 4
gpt4 key购买 nike

我需要将一些 char 值转换为 int 值但大于 256。这是我将 int 转换为 char 的函数。我需要扭转它

public static string chr(int number)
{
return ((char)number).ToString();
}

这个函数不起作用 - 它只返回 0-256,ord(chr(i))==i

public static int ord(string str)
{
return Encoding.Unicode.GetBytes(str)[0];
}

最佳答案

问题是您的 ord 函数将字符串的字符截断到第一个字节,正如 UNICODE 编码所解释的那样。这个表达式

Encoding.Unicode.GetBytes(str)[0]
// ^^^

返回 byte 数组的初始元素,因此它必然保持在 0..255 范围内。

您可以按如下方式修复您的 ord 方法:

public static int Ord(string str) {
var bytes = Encoding.Unicode.GetBytes(str);
return BitConverter.ToChar(bytes, 0);
}

Demo

关于C# 将 char 转换为大于 256 的 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36608439/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com