如何在字节变量中存储 sbyte 值?

发布于 2024-09-05 06:14:52 字数 208 浏览 11 评论 0原文

我正在用 C# 编程。 我有一个 sbyte 变量。 假设它包含 -10,二进制为 11110110。 我想将该值的二进制表示形式存储在字节变量中。 因此,当我将 sbyte (-10) 复制到 byte 时,字节值将为 245。 如果我尝试使用 Convert.ToByte(sbyte) 它会抛出一个有意义的异常。 我真的不想从一种类型转换为另一种类型,而是进行按位复制。 我怎样才能做到这一点?

I am programming in C#.
I have a sbyte variable.
Say it holds -10 which in binary is 11110110.
I want to store the binary representation of this value in a byte variable.
So when I copy the sbyte (-10) to the byte the bytes value would be 245.
If I try to use Convert.ToByte(sbyte) it throws an exception which makes sense.
I really don't want to convert from one type to the other but rather make bit-wise copy.
How can I do that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

流绪微梦 2024-09-12 06:14:52

只需强制转换:

byte b = (byte) x;

如果您的代码通常在检查的上下文中运行,则您需要取消检查此操作:

byte b = unchecked((byte) x);

请注意,-10 将变为 246,而不是 245。

Just cast:

byte b = (byte) x;

If your code is normally running in a checked context, you'll want to make this operation unchecked:

byte b = unchecked((byte) x);

Note that -10 will become 246, not 245.

落叶缤纷 2024-09-12 06:14:52

只需投射即可:

byte b = 130;
sbyte a = (sbyte)b;
byte c = (byte)a; // will still be 130

Just cast it:

byte b = 130;
sbyte a = (sbyte)b;
byte c = (byte)a; // will still be 130
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文