c# - 在 C# 中将 Sbyte 转换为整数

标签 c#

我似乎无法找到将 sbyte 转换回原始整数值的方法。

int k = 148;
sbyte t = (sbyte)k;
int asd = Convert.ToInt32(t);

asd 的值为-108。如何将 sbyte 转换回 int 以获得原始值 148?

谢谢

最佳答案

假设您希望结果在 0-255 范围内(含),最简单的方法是:

int asd = t & 0xff;

这会将 k 提升为 int,然后仅取底部 8 位,将所有顶部 24 位保留为 0。

但是,我会质疑为什么您首先要使用 sbyte 来实现此目的。这不是一个好主意 - Java 的设计缺陷之一(在我看来)是使 byte 成为有符号类型。如果你想表示字节值,byte会更合适。

关于c# - 在 C# 中将 Sbyte 转换为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25498858/

相关文章:

c# - 无法成功启动或连接到子 MSBuild.exe 进程。验证 MSBuild.exe

c# - 从给定值的 ConcurrentDictionary 中删除键/值对

c# - 我怎样才能找到所有在位图中绑定(bind)区域的矩形?

c# - 一个类轮,如果呼吁采取行动

c# - 一元加号运算符有什么作用?

c# - ConvertNullDate 扩展方法

c# - 如何将数据表导出到 Excel

c# - 如何在 C# 5.0 应用程序中嵌入 lua(或其他脚本语言)

c# - Entity Framework 缓存问题