我似乎无法找到将 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/