gpt4 book ai didi

c# - 在不更改 C# 中的位的情况下将字节转换为 sbyte

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

我想将一个字节转换为一个 sbyte,而不更改任何位。

byte b = 0x84;
sbyte sb = unchecked((sbyte)b);
Console.WriteLine("0x" + Convert.ToString(b, 16));
Console.WriteLine("0x" + Convert.ToString(sb, 16));

这样做的结果是:

0x84
0xff84

我理解结果的含义以及它发生的原因。但是,我似乎无法找出如何避免这种行为。如何复制字节的实际二进制值并将其放入 sbyte 中?

最佳答案

位在 bsb 之间根本没有变化。此行为来自 Convert.ToString() .只是没有采用 sbyte 和基数的 Convert.ToString() 重载。最接近的匹配项是 Convert.ToString Method (Int16, Int32) .所以 sb 被符号扩展为 16 位。

关于c# - 在不更改 C# 中的位的情况下将字节转换为 sbyte,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30227782/

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